数据高版本数据库迁移到低数据问题

Specified key was too long; max key length is 767 bytes 处理
l-loliday
l-loliday
mysql5.6及以下版本迁移来自高版本的数据库的时候,可能会遇到此问题

想了解问题原理浏览该文章 夕阳打工人小邓:我恨错误之:1071 - Specified key was too long; max key length is 767 bytes???

一般导致的原因创建表的时候字段类型为varchar时的长度长于191767/4=191)

解决办法:

升级mysql到5.7或以上
将varchar长度设置低于190
按照下面的步骤设置
1.设置INNODB_LARGE_PREFIX为on

查看
SHOW VARIABLES LIKE 'innodb_large_prefix'
设置
SET GLOBAL INNODB_LARGE_PREFIX = ON;
2.设置innodb_file_format为BARRACUDA

查看
SHOW VARIABLES LIKE 'innodb_file_format'
设置
SET GLOBAL innodb_file_format = BARRACUDA;
3.在每个要创建的表上增加row_format=dynamic

例如:

create table my_table (
   ...
)engine=innodb row_format=dynamic comment='备注'

你可能感兴趣的:(数据库)