MySQL 字段名不长,但还是报错Specified key was too long; max key length is 3072 bytes
时间: 2024-05-29 21:07:18 浏览: 134
MySQL错误“Specified key was too long; max key length is 1000 bytes”的解决办法
这个问题通常是因为 MySQL 版本是5.7.7或以上的版本,而且使用的是 utf8mb4 字符集。在 utf8mb4 字符集下,每个字符占用 4 个字节的存储空间,而 MySQL 对于 InnoDB 存储引擎的索引键长度有限制,最大值是 3072 个字节。
因此,当你创建一个字段长度超过 3072 个字节的索引时,就会报错 "Specified key was too long; max key length is 3072 bytes"。
解决这个问题的方法可以通过以下两种方式之一:
1. 修改 MySQL 的配置文件,在 [mysqld] 下添加以下配置:
[mysqld]
innodb_file_format = Barracuda
innodb_file_per_table = 1
innodb_large_prefix = 1
然后重启 MySQL,这样就可以支持更长的索引键了。
2. 修改表结构,将字段长度缩短到 3072 字节以内。
阅读全文