mysql错误 Index column size too large. The maximum c

安装一个php程序的时候报错 :Index column size too large. The maximum column size is 767 bytes

搜了一下,大部分是英文结果,老外的建议是,将 innodb_large_prefix 设置成 ON 。
可以执行下面的语句查看当前设置:show global variables like 'innodb_lar%';


但是我在本地电脑安装的时候就顺利通过,检查了下本地数据库,发现安装好的数据结构里,原本是filename VARCHAR(300)的字段,生成的索引是filename(255),也就是说数据库引擎自动缩短了索引长度。

这个错误不知道为什么,在生产环境上无法自动处理,而且直接报错退出。估计和数据库版本或者设置参数有关。


因此如果你也遇到这个错误,解决办法有两个。
1. 避免给长度超过255char的字段加索引。
2.修改mysql运行参数,innodb_large_prefix = ON

有话要说