解决mysql创建索引时报错Index column size too large. The maximum column size is 767 bytes.
表的字段索引长度限制,由于MySQL的Innodb引擎表索引字段长度的限制为767字节,如果在varchar(255)或char(255)类型字段上创建索引会失败,当然还有其他情形也会产生此错误。然后重启mysql服务systemctl restart mysql。如此以后,添加索引就不会报此类错误。
·
错误原因:
表的字段索引长度限制,由于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;
如此以后,添加索引就不会报此类错误。
更多推荐
已为社区贡献2条内容
所有评论(0)