WordPress网站在导入数据库时,出现“#1273 – Unknown collation: ‘utf8mb4_unicode_ci’” 或者 “#1273 – Unknown collation: ‘utf8mb4_unicode_520_ci’”的错误,基本都是因为导入的MYSQL和当前网站数据库版本不一致导致的。
wordpress4.2版本之后升级了数据库,如果数据库是mysql5.5以上的互相导入没有问题,如果老网站是mysql5.5的,导入新网站是mysql5.5版本以下的,就会出现这个问题。
解决方法1:升级MYSQL
如果我们是自己搭建的服务器环境或者VPS,可以通过升级MySQL数据库版本来解决。把当前网站服务器环境下MySQL升级至5.5版本或更高,这样就可以解决兼容性问题。但是,如果我们使用的虚拟主机或者其他无法操作MYSQL升级的话,则看解决方法2。
解决方法2:根据wordpress官方的解释,在导入数据库之前,只需要把utf8mb4编码转成utf-8就可以了,有两种方法可以替换数据库编码:
方法一:替换代码
从老的数据库中导出的数据库文件(后缀为 .sql),用Notepad++=等代码编辑器打开。
查找:utf8mb4_unicode_ci
,替换为:utf8_general_ci
查找:utf8mb4_unicode_520_ci
,替换为:utf8_general_ci
查找:utf8mb4
替换为 utf8
保存,重新导入到数据库中,导入前先清空数据库内的表。
注意:一定要按照上面的先后顺序完成上面的替换,否则不能替换成功。
方法二、修改文件
修改wordpress的配置文件wp-config.php
把define(‘DB_CHARSET’, ‘utf8mb4’);
改为define(‘DB_CHARSET’, ‘utf-8’);
如果按照方法一出现乱码情况,请再按照方法二修改配置文件
解决方法3:备份兼容性数据库
如果以上2种办法都行不通,那我们就要在导出原网站的数据库时,做好相应的兼容性版本的设置了,具体如下:
1. 登录原网站的 phpMyAdmin 数据库管理,找到对应数据库切换到【导出】界面,选择“自定义 – 显示所有可用的选项”,如下图所示:
2. 在【格式特定选项】中,找到“最大程度兼容数据库系统或旧版本的MySQL服务器”选项中,选择 MYSQL40,然后,导出数据库,如下图所示:
3. 最后,进入到新网站空间的 phpMyAdmin 数据库管理中,导入数据时,一定记得要在【格式特定选项】的 “SQL 兼容模式”中,选MYSQL40,和之前导出的保持一致。如下图所示:
如果还会出现错误提示,尝试检查 WordPress 网站根目录下的配置文件 wp-config.php ,更改数据表默认文字编码,把里面的
define(‘DB_CHARSET’, ‘utf8mb4’);
改成:
define(‘DB_CHARSET’, ‘utf8’);