今天在给一个网站做迁移,恢复数据库的时候弹出了“UnKnown collation: ‘utf8mb4_unicode_520ci’ ”的错误提示,具体报错信息如下:

网上搜了一下,原来是 MySQL 5.6 以及以上版本下,安装 WordPress 4.6 及以上版本的时候,默认的编码整理方式为 utf8mb4_unicode_520_ci,但是 MySQL 5.5 及以下版本的数据库,不支持 utf8mb4_unicode_520_ci,所以无法导入。 而我们只需要将备份的 sql 文件通过记事本打开,替换 utf8mb4_unicode_520_ci utf8mb4_unicode_ci 即可

替换完成后重新导入,又提示“UnKnown character set: ‘utf8mb4‘ ”错误。纳尼?什么情况!!!

突然想起来,这事儿不对啊!WordPress 数据库不是 utf 8 编码的吗?咋成了 utf8mb4 编码了?这什么灵异事件。。。回去查看了下 wp-config.php 文件,果不其然,编码格式不知何时改成 utf8mb4 ,这就尴尬了不是。问题是因为使用的是阿里云的虚拟主机,最高只支持 mysql 5.1.73 ,退钱是不可能了。只能强行将编码改为 utf8 了。

再次打开记事本,批量查找 utf8mb4 并将其替换回 utf8 。

重新尝试回复数据库,成功!!!

注:手动修改数据文件有风险,重要数据不建议此种操作。幸好新站数据量不大,恢复后大致检查了下没什么问题。提醒大家也看下自己 wp-config.php 文件中数据库编码格式,当然,如果你以后不会再使用低版本数据库倒也无妨。