问题:
用navicat导入mysql数据库时,提示Specified key was too long; max key length is 767 bytes
,意思即:索引字段长度太长,超过了767bytes。
原因:
mysql的varchar主键只支持不超过767个字节或者768/2=384个双字节,或者767/3=255个三字节的字段,而GBK是双字节的,UTF8是三字节的。
解决:
找到索引字段,字段索引是varchar(1000)的,先把索引干掉,再次导入成功!
根据需要或者可以做如下配置:
- 使用innodb引擎;
- 启用innodb_large_prefix选项,将约束项扩展至3072byte;
- 重新创建数据库;
my.cnf配置:
1 2 |
default-storage-engine=INNODB innodb_large_prefix=on |