最近在对一个WordPress网站搬家,从腾讯云搬到一个虚拟主机上;在腾讯云主机上:WordPress版本是最新的4.2,Mysql版本是5.5;而虚拟主机上的Mysql版本为5.1,这样把腾讯云主机备份的数据库文件导入到此虚拟主机时就出现了Unknown character set: ‘utf8mb4’错误;相反从Mysql5.1导入到Mysql5.5也会出现这个问题。这是因为Mysql低版本与高版本不兼容导致。

从WordPress4.2版本开始,默认的文字编码变为了utf8mb4,而之前版本都是utf8。

解决这个问题有3种方法,请根据自己的状况自行选择:

方法1

升级数据库为Mysql5.5版本(如果是虚拟主机就不能用这个方法了)

方法2

用SQL命令修改数据表的排序规则(默认编码)

通过phpmyadmin登录数据库管理界面

在SQL命令窗口执行下面命令(把表名修改为自己要修改编码的表名称;有多个表,请执行多次):

ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

方法3

在phpmyadmin中导出兼容版本数据库

我们在“导出”界面,“导出方式”选择“自定义

“格式特定选项”中选择兼容旧版本的Mysql服务器为“MYSQL40”

再执行导出操作,导出后再导入到新的数据库中就可以导成功了。

完成上面的操作后,最后修改网站根目录下wp-config.php的文件,解决乱码问题:

找到下面:

define('DB_CHARSET', 'utf8mb4');

改成:

define('DB_CHARSET', 'utf8');