mysql在执行脚本时,报出了以下错误:
index column size too large. the maximum column size is 767 bytes
原因:
INNODB 引擎,UTF-8,主键字符串 默认最大 767,需要修改
解决方案:
1. 对数据库进行设置
set global innodb_file_format = BARRACUDA
set global innodb_large_prefix = ON
注意: 在navicat中执行成功,不清楚重启数据库是否还有效
查看是否生效
show variables like 'character%';
show variables like 'collation_%';
show variables like 'innodb_large_prefix';
show variables like 'innodb_file_format';
2. 对脚本进行修改,添加ROW_FORMAT=DYNAMIC
create table test (........) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
本文介绍了解决MySQL INNODB引擎下,因UTF-8编码导致的主键字符串超过767字节限制的问题。通过调整数据库设置和脚本,启用BARRACUDA文件格式和innodb_large_prefix选项,同时修改CREATE TABLE语句加入ROW_FORMAT=DYNAMIC参数。
905

被折叠的 条评论
为什么被折叠?



