mysql密钥问题太长了

时间:2010-11-09 07:01:06

标签: mysql character-encoding mysqldump mysql-error-1071

我试图在从latin1将字符集更改为utf8之后导入我的备份,现在在导入期间我收到此错误 ERROR 1071(42000)第2137行:指定密钥太长;最大密钥长度为1000字节 尝试改变my.cnf并设置所有charset和连接到utf8,但现在好运,我不想回到latin1,我知道这将解决问题,但utf8我的监狱有任何线索?我知道拉丁1字节= 1字符和utf8 3字节= 1 ..

3 个答案:

答案 0 :(得分:3)

虽然每个字符的UTF-8并不总是3个字节,但MySQL为每个字符保留了3个字节的索引。

如果您的应用程序允许它(即它未在UNIQUE KEY约束中使用),请重新定义/更改表以使用适当长度的前缀键(即< 1000/3)。

CREATE TABLE my_table  .... KEY my_field_20(my_field(20));

答案 1 :(得分:0)

你可以从MyISAM切换到InnoDB,它似乎解决了问题..

答案 2 :(得分:-1)

在mysqldump命令中使用--force选项,它将忽略错误并继续备份。