mysql 建表语句报错——Specified(key was too long)
句子大全 2022-12-25 07:43:01
- 相关推荐
今天同事给我一些sql让我在线上库中创建表(小公司,需要兼职做DBA),突然报错了
Specified key was too long; max key length is 767 bytes;
mysql的varchar主键只支持不超过767个字节或者768/2=384个双字节 或者767/3=255个三字节的字段 而GBK是双字节的,UTF8是三字节的。
网上给出的问题原因有两种
1、表编码和字段的编码不一致
2、innodb_large_prefix需要设置成ON
我检查了编码,是一致的,然后将innodb_large_prefix设置成ON 发现还是不行,于是再查阅资料发现 innodb_large_prefix 需要将 这两个参数设置才可以生效
innodb_file_format = Barracuda
innodb_file_per_table = ON
但是还是不行
最终我找到原因
建表的时候指定表的row_format为dynamic或者compressed
我将同事的建表语句调整后,可以正常运行了
阅读剩余内容