Jireh 的个人博客 Jireh 的个人博客

记录分享生活、程序、信息的精彩人生

目录
#1071 - Specified key was too long; max key length is 767 bytes
/    

#1071 - Specified key was too long; max key length is 767 bytes

在测试xpay的时候,遇到初始化数据库错误的情况
#1071 - Specified key was too long; max key length is 767 bytes

提示是字段的类型的大小超出了767字节,发现自己是用了Mysql6.5的版本

问题原因

在MySQL版本5.6(及更早版本)中,InnoDB表的前缀限制为767个字节。MyISAM表的长度为1,000字节。在MySQL 5.7及更高版本中,此限制已增加到3072字节。

您还必须注意,如果在以utf8mb4编码的大char或varchar字段上设置索引,则必须将767字节(或3072字节)的最大索引前缀长度除以4,得到191。这是因为utf8mb4字符的最大长度为四个字节。对于utf8字符,它将是三个字节,导致最大索引前缀长度为254。

哈,只能升级版本了。


如果觉得这篇文章不错的话,请我喝一杯 咖啡☕吧
标题:#1071 - Specified key was too long; max key length is 767 bytes
作者:Jireh
地址:https://www.lyile.cn/articles/2020/12/02/1606893127977.html
本作品由 Jireh 采用 署名 – 非商业性使用 – 禁止演绎 4.0 国际许可协议进行许可,转载请注明出处。