最近在对一个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');