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约束和表的复杂查询操作大全

    MySQL约束和表的复杂查询操作大全

    约束是关系型数据库的一个重要功能, 添加到库中的数据需要保证其的正确性; 约束, 就是让数据库帮助程序员更好的检查数据是否正确.,这篇文章主要介绍了MySQL约束和表的复杂查询操作,需要的朋友可以参考下
    2022-11-11
  • 一文分析SQL Server中事务使用的锁

    一文分析SQL Server中事务使用的锁

    这篇文章主要介绍了一文分析SQL Server中事务使用的锁,数据库引擎使用不同的锁模式锁定资源,通过不同锁的组合使用达到不同的数据库事务隔离级别,需要的朋友可以参考一下
    2022-09-09
  • MySQL中slave监控的延迟情况分析

    MySQL中slave监控的延迟情况分析

    这篇文章主要介绍了MySQL中slave监控的延迟情况分析,主要针对MySQL的复制环境情况下,需要的朋友可以参考下
    2015-05-05
  • SQL语句中OR和AND的混合使用的小技巧

    SQL语句中OR和AND的混合使用的小技巧

    在SQL语句中我们可能会经常混合使用到OR和AND,其中可能会出现一些小问题,下面小编来讲一讲它的使用技巧
    2019-05-05
  • mysql 5.7.21 解压版安装配置图文教程

    mysql 5.7.21 解压版安装配置图文教程

    这篇文章主要为大家详细介绍了mysql 5.7.21 解压版安装配置图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • MySQL时间盲注的五种延时方法实现

    MySQL时间盲注的五种延时方法实现

    MySQL时间盲注主要有五种,sleep(),benchmark(t,exp),笛卡尔积,GET_LOCK() RLIKE正则,本文就主要介绍了这五种方法,感兴趣的可以了解一下
    2021-05-05
  • MySQL数据库聚合函数与分组查询举例详解

    MySQL数据库聚合函数与分组查询举例详解

    在MySQL中聚合函数和分组查询经常一起使用,下面这篇文章主要给大家介绍了关于MySQL数据库聚合函数与分组查询的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • mysql备份表的几种方法总结

    mysql备份表的几种方法总结

    这篇文章主要介绍了mysql的备份表的几种方法总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-03-03
  • MySQL 配置免密码登录的问题记录(mysql_config_editor Configuration)

    MySQL 配置免密码登录的问题记录(mysql_config_editor Configurati

    这篇文章主要介绍了MySQL 配置免密码登录的问题记录(mysql_config_editor Configuration),本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-08-08
  • mysql自动插入百万模拟数据的操作代码

    mysql自动插入百万模拟数据的操作代码

    这篇文章主要介绍了mysql自动插入百万模拟数据的示例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定参考借鉴价值,需要的朋友可以参考下
    2021-10-10

最新评论