mysql5.6批量设置表ROW_FORMAT =DYNAMIC问题

 更新时间:2023年10月18日 10:52:52   作者:DQZ_cool  
这篇文章主要介绍了mysql5.6批量设置表ROW_FORMAT =DYNAMIC问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

mysql5.6批量设置表ROW_FORMAT =DYNAMIC

安装某个软件的时候提示

ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes

后来发现是一些参数设置的问题,不知道mysql5.7会不会出现这个问题,

没有测试大家可以直接升级到mysql5.7看能不能解决

解决方法

1: 系统变量innodb_large_prefix为ON

2: 系统变量innodb_file_format为Barracuda

3: ROW_FORMAT为DYNAMIC或COMPRESSED

将这三个变量设置为以上状态:

分别可以使用命令 

1)show variables like '%innodb_large_prefix%';

2)show variables like '%innodb_file_format%';

3)SELECT table_schema, table_name, row_format  FROM information_schema.TABLES 
WHERE table_schema IN ( '数据库名') 【可以加筛选命令不是Dynamic的表 AND information_schema.TABLES.row_format <> 'Dynamic'】

查看参数状态如果参数状态不正确可以使用

set global innodb_large_prefix=on;

set global innodb_file_format=Barracuda;

两个命令完成

问题是第三个修改比较麻烦,mysql5.6没有全局设置表为ROW_FORMAT为DYNAMIC或COMPRESSED的属性,所以得一个个修改,后来想了个办法,

可以这样尝试操作:

1)可以通过命令

筛选出不等于Dynamic的表并生成更新语句

SELECT
    CONCAT( "ALTER TABLE `", table_schema, "`.`", table_name, "` ROW_FORMAT =DYNAMIC ;" ) 
FROM
    information_schema.TABLES 
WHERE
    table_schema IN ( '数据库名' ) AND information_schema.TABLES.row_format <> 'Dynamic'

将生成的语句批量执行就可以了!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mysql配置模板(my-*.cnf)参数详细说明

    mysql配置模板(my-*.cnf)参数详细说明

    这篇文章主要介绍了mysql配置模板就是mysql的配置文件参数说明,需要的朋友可以参考下
    2015-01-01
  • MySQL5.6.22 绿色版 安装详细教程(图解)

    MySQL5.6.22 绿色版 安装详细教程(图解)

    本文通过图文并茂的形式给大家介绍了MySQL5.6.22 绿色版 安装详细教程,非常不错,具有一定的参考借鉴价值,感兴趣的朋友一起看看吧
    2016-11-11
  • CentOS7.5 安装MySql的教程

    CentOS7.5 安装MySql的教程

    这篇文章主要介绍了CentOS7.5 安装MySql的教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Mysql使用Sharding-JDBC配置教程

    Mysql使用Sharding-JDBC配置教程

    文章介绍了如何使用Sharding-JDBC对订单表进行水平分表,并通过配置分片规则、数据操作和测试验证了分表的实现,同时,文章还讨论了Sharding-JDBC的多种集成方式和4种分片策略的实现方法,包括标准分片策略、复合分片策略、行表达式分片策略和Hint分片策略
    2025-02-02
  • mysql踩坑之limit与sum函数混合使用问题详解

    mysql踩坑之limit与sum函数混合使用问题详解

    这篇文章主要给大家介绍了关于mysql踩坑之limit与sum函数混合使用问题的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用mysql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • 各个系统如何寻找数据库的my.ini并进行修改方法详解

    各个系统如何寻找数据库的my.ini并进行修改方法详解

    通过编辑my.ini文件,可以对MySQL数据库服务器进行各种配置,比如设置监听的IP地址、指定端口号、设定字符集、配置缓冲区大小等等,这篇文章主要介绍了各个系统如何寻找数据库的my.ini并进行修改的相关资料,需要的朋友可以参考下
    2025-04-04
  • MySQL的MRR(Multi-Range Read)优化原理解析

    MySQL的MRR(Multi-Range Read)优化原理解析

    MRR优化是MySQL中一种重要的查询优化技术,它通过减少磁盘I/O的随机性和提高缓存效率,显著提升了查询性能,这篇文章主要介绍了MySQL的MRR(Multi-Range Read)优化原理详解,需要的朋友可以参考下
    2024-08-08
  • MySQL修改lower_case_table_names参数的方法实践

    MySQL修改lower_case_table_names参数的方法实践

    本文主要介绍了MySQL修改lower_case_table_names参数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-05-05
  • 通过缓存+SQL修改优雅地优化慢查询

    通过缓存+SQL修改优雅地优化慢查询

    本文通过介绍缓存的基本原理和SQL语句的优化手段,以及实际案例的分析,为读者提供了一种简单而有效的优化思路。读者可以通过本文了解到如何在不修改程序代码的情况下,通过巧妙地运用缓存和SQL优化技巧,提高程序的性能和响应速度。
    2023-04-04
  • MySQL DBA教程:Mysql性能优化之缓存参数优化

    MySQL DBA教程:Mysql性能优化之缓存参数优化

    在平时被问及最多的问题就是关于 MySQL 数据库性能优化方面的问题,所以最近打算写一个MySQL数据库性能优化方面的系列文章,希望对初中级 MySQL DBA 以及其他对 MySQL 性能优化感兴趣的朋友们有所帮助
    2014-03-03

最新评论