导致这个问题的原因索引的字段都太长了,mysql受不了,解决方法就是,让mysql支持比较长的索引,然后在插入表的时候,添加ROW_FORMAT=DYNAMIC ,自动格式化索引。
ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
查看数据库信息
1
2
3
4
5
6
7
8
|
show variables
like
'innodb_large_prefix'
;
show variables
like
'innodb_file_format'
;
--修改最大索引长度限制
set
global
innodb_large_prefix=1;
set
global
innodb_file_format=BARRACUDA;
-- 添加
set
global
innodb_file_format_max=BARRACUDA;
|
2、修改插入sql的语句添加ROW_FORMAT=DYNAMIC
1
2
3
4
5
6
|
create
table
idx_length_test_02
(
id
int
auto_increment
primary
key
,
name
varchar
(255)
)
ROW_FORMAT=
DYNAMIC
default
charset utf8mb4;
|