错误原因:

表的字段索引长度限制,由于MySQL的Innodb引擎表索引字段长度的限制为767字节,如果在varchar(255)或char(255)类型字段上创建索引会失败,当然还有其他情形也会产生此错误。

解决办法,修改mysql配置文件my.cnf,在[mysqld]节点下添加以下配置:

# 检查这3条配置文件,没有就添加上
innodb_large_prefix = 1
innodb_file_per_table = 1
innodb_file_format = Barracuda

然后重启mysql服务systemctl restart mysql

对于修改配置前已存在的表,除了添加上面的配置,还需执行如下SQL语句才会生效:

alter table `表名` row_format=dynamic;
alter table `表名` row_format=compressed;

如此以后,添加索引就不会报此类错误。 

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐