今天导数据库的时候,抽风,报了这个错,当时找了资料,也没太好用啊,导致这个问题的原因索引的字段都太长了,mysql受不了,解决方法就是,让mysql支持比较长的索引,然后在插入表的时候,添加ROW_FORMAT=DYNAMIC ,自动格式化索引。
查看数据库信息
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
create table idx_length_test_02 ( id int auto_increment primary key, name varchar(255) ) ROW_FORMAT=DYNAMIC default charset utf8mb4;