mysql 5.7 - 指定密钥太长;最大密钥长度为3072字节

时间:2016-10-16 17:58:41

标签: mysql

我的一个talbe有一个多列索引,总共1011个字符。 存储引擎是InnoDB。

同样的表在mysql 5.6.26中运行得很好。但现在当我升级到mysql 5.7.16时,我收到错误指定密钥太长;最大密钥长度为3072字节

我知道索引的总大小有限。但问题是,为什么它在5.6中工作并且在5.7中停止工作。有没有我可以做的事情,而不减少列的大小。

1 个答案:

答案 0 :(得分:1)

我们的问题是默认字符集。在旧的5.6版本中,我的默认字符集是latin1,但是当我安装5.7.16时,我没有更改字符集,默认为utf8,这导致更大的列大小,因为utf占用更多字节,导致错误。将默认字符集更改回latin1并重新创建表修复了问题。

[mysqld]
character-set-server=latin1

[client]
default-character-set=latin1

[mysql]
default-character-set=latin1