向服务器中导入本地 MySQL 数据库,遇到错误:1071 -Specified key was too long; max key length is 767 bytes。
这个错误的原因是索引长度超过了 MySQL 默认的 767 个字节,关于这个问题的原因在:MySQL创建索引报错:”Specified key was too long; max key length is 767 bytes”的原因及解决办法一文中详细介绍了。
如果是创建索引时遇到该问题,那么按照上文中介绍的方法修改字段长度就可以了。
导入的话有两种办法:
方法一:修改 sql 文件,批量将导入语句中的 255 替换成 191 再次导入即可。
`email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
改成:
`email` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
方法二:遇到这个错误都是 InnoDB 模式(因为 myisam 模式长度限制是 1000 字节),那么可以启用 innodb_large_prefix 选项来突破 767 字节限制。
mysql> set global innodb_large_prefix=1;