日记大全

日记大全 > 句子大全

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

我将同事的建表语句调整后,可以正常运行了

阅读剩余内容
网友评论
相关内容
拓展阅读
最近更新