今天有在帮朋友的博客搬迁到另外一台VPS主机环境,其环境采用的是LLSMP架构的,原先的服务器采用的是LNMP网站环境,其博客程序是WORDPRESS。告知在导入数据库的时候出现”Unknown collation: ‘utf8mb4_unicode_ci'”错误提示,这样的问题应该是WordPress4.2版本之后才有的,以前记得没有出现过这样的问题。
看到WordPress官方社区的文档,有提到MYSQL版本问题导致的,因为默认的LLSMP环境MYSQL是5.1版本的,而LNMP环境中安装的MYSQL是5.5版本的,所以高版本向低版本不兼容,官方的建议是升级MYSQL版本5.5,所以我也采用这个方法。
大鸟之前也有分享过4篇关于数据库导入编码问题和数据库升级类的相关文章:
1、解决导入MySQL数据库提示”Unknown character set: ‘utf8mb4′”错误
2、解决WordPress导入数据库”Unknown collation: ‘utf8mb4_unicode_ci”错误
3、MySQL数据库导入提示”utf8mb4_unicode_520_ci”错误的问题解决方法
4、Linux CentOS6环境下MySQL5.1升级至MySQL5.5版本过程
第一、备份数据库和网站文件
在折腾之前我们还是要备份数据库和网页文件到本地,以免出现问题影响当前的环境以及其他网站的运行。
第二、停止MYSQL运行以及卸载老版本
service mysqld stop #暂停MYSQL
yum remove mysql mysql-* #卸载老版本MYSQL
通过上面的命令,我们先停止当前MYSQL的运行,然后再卸载老的MYSQL5.1版本数据库。
第三、检查和卸载残余mysql-libs
yum list installed | grep mysql
我们检查是否有残余的mysql-libs,如果有,我们执行下面的命令清除掉。
yum remove mysql-libs
执行清除,如果没有不执行也没关系。
第四、升级和安装MYSQL5.5
这里大鸟参考网上一个快速的方法解决,因为等会要出去办事,在这篇文章就不选择版本安装了,直接采用源包中的5.5默认安装。
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh http://mirrors.neusoft.edu.cn/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm -Uvh http://dl.iuscommunity.org/pub/ius/stable/Redhat/6/x86_64/epel-release-6-5.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
先安装一些依赖环境。
yum –enablerepo=remi,remi-test info mysql mysql-server
然后再执行安装MYSQL5.5
yum –enablerepo=remi,remi-test install mysql mysql-server
执行完成。到目前为止我们可以通过mysql -V检查MYSQL版本已经是5.5,但是现在还不行,根据提示需要进行配置文件,但是不懂为什么大鸟并没有修改MYSQL的配置文件也可以执行,难道是天意?
第五、启动和检查
mysql_upgrade -u root -p
原本根据网络上的方法是需要修改配置文件的,我没修改也可以完成,所以继续执行升级启动的执行,输入当初我们的MYSQL ROOT密码,让过一遍。
完毕之后,我们执行启动MYSQL
service mysqld restart
如果能够看到两个绿色的OK,那就一切没有问题。
总结,这样我们再去导入数据库就不会出现编码问题。看到有文档提到可以直接在导出MYSQL数据库的时候选择版本的,后面大鸟试试,因为升级MYSQL存在很多不安和麻烦,万一出错就麻烦了。