今天在使用mysql建表的时候遇见了一个报错:
ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
经搜索,要经过以下步骤可解决:
1.mysql命令行修改环境变量
mysql> set global innodb_large_prefix=on;
mysql> set global innodb_file_format=Barracuda;
mysql> set global innodb_file_format_max=BARRACUDA;
2、修改插入sql的语句添加ROW_FORMAT=DYNAMIC
例如:
mysql> create table idx_length_test_02
(
id int auto_increment primary key,
name varchar(255)
)
ROW_FORMAT=DYNAMIC default charset utf8mb4;
其中ROW_FORMAT=DYNAMIC 就是需要在建表时要增加的操作.
如果只操作了步骤1,那么执行会出现以下错误:
ERROR 1709 (HY000): Index column size too large. The maximum column size is 767 bytes.
这就是因为没有在建表时添加ROW_FORMAT=DYNAMIC导致的.只需完成步骤1后然后在建表的时候再执行步骤2即可.
如果不是在建表的时候出错,而是在修改字段时出错,可以参考如下链接:
点击此处跳转到链接