导入至phpMyAdmin报错#1071:指定键过长,如何解决?
解决MySQL #1071 - Specified key was too long错误(WordPress备份恢复)
遇到这个报错是因为你的WordPress备份里,部分索引字段的字节长度超过了MySQL默认的1000字节限制(通常是utf8mb4字符集下的varchar(255)字段,每个字符占4字节,255*4=1020),试试这几个解决办法:
方法一:修改SQL备份文件的索引长度
- 打开你的SQL备份文件,搜索带
KEY或INDEX的行,找到类似KEY meta_key (meta_key)这种针对长字符串字段的索引 - 把索引字段改成指定长度,比如
KEY meta_key (meta_key(191))(191*4=764,刚好低于1000字节限制) - 保存修改后的文件,重新在phpMyAdmin里导入
方法二:临时调整MySQL参数(需主机支持)
- 进入phpMyAdmin的SQL命令行,执行以下三条命令:
SET GLOBAL innodb_large_prefix = ON; SET GLOBAL innodb_file_format = Barracuda; SET GLOBAL innodb_file_per_table = ON; - 执行完再重新导入备份,不过部分共享主机(比如GoDaddy的基础共享计划)可能不让改全局参数,失败就换其他方法
方法三:强制切换数据库字符集
- 在SQL文件最开头添加以下代码,把数据库字符集改成utf8(每个字符占3字节,255*3=765<1000):
记得把SET NAMES utf8; ALTER DATABASE your_db_name CHARACTER SET utf8 COLLATE utf8_general_ci;your_db_name换成你实际的数据库名称 - 保存后再导入整个SQL文件
方法四:用WP-CLI导入(有SSH权限的话)
- 如果GoDaddy给你开了SSH访问,直接用WP-CLI命令导入,它会自动适配数据库的索引限制:
这是WordPress场景下最省心的方式,不用手动改文件wp db import your_backup.sql
内容的提问来源于stack exchange,提问作者Brandon
相关产品推荐
相关产品推荐

