WordPress网站更新时出现字符集与排序规则不兼容错误求助
解决WordPress更新时的字符集/排序规则错误
问题分析
这个错误是因为WordPress更新程序检测到你的数据库使用了它不再兼容的旧版字符集或排序规则(比如早期的latin1系列、自定义非标准规则),所以会提示要替换为默认值。你修改本地MySQL全局规则没用,是因为数据库和表本身的字符集规则没同步更新。
具体解决步骤
1. 排查当前数据库和表的字符集状态
登录MySQL执行以下命令,确认你的数据库和所有表的字符集/排序规则:-- 查看数据库默认规则 SELECT schema_name, default_character_set_name, default_collation_name FROM information_schema.schemata WHERE schema_name = '你的数据库名称'; -- 查看所有表的规则 SELECT table_name, table_collation FROM information_schema.tables WHERE table_schema = '你的数据库名称';2. 统一数据库和表为WordPress推荐规则
现在WordPress默认要求用utf8mb4和utf8mb4_unicode_ci,执行以下命令修改:-- 修改数据库默认字符集 ALTER DATABASE 你的数据库名称 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;然后批量生成所有表的修改命令(复制输出的每条命令执行):
SELECT CONCAT('ALTER TABLE ', table_name, ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;') FROM information_schema.tables WHERE table_schema = '你的数据库名称';3. 修正wp-config.php配置
打开网站根目录的wp-config.php,确保有以下两行配置(没有就添加):define('DB_CHARSET', 'utf8mb4'); define('DB_COLLATE', 'utf8mb4_unicode_ci');4. 清理更新缓存
- 删除
wp-content目录下的upgrade文件夹(如果存在) - 登录WordPress后台,进入「设置-常规」,无需修改内容,直接点击「保存更改」触发系统缓存刷新
- 删除
5. 检查MySQL版本
如果以上步骤都没用,确认你的MySQL版本是否低于5.6——utf8mb4在MySQL 5.5及以下支持不全,WordPress更新程序会因此报错,需要升级到MySQL 5.6或更高版本(推荐8.0)
注意:操作前务必备份整个数据库,防止数据丢失。
内容的提问来源于stack exchange,提问作者David Henson
相关产品推荐
相关产品推荐

