490
个编辑
更改
无编辑摘要
[[category:随记IS]]
= Wordpress 4.9迁移到低版本MYSQL问题点 =
#1115 - Unknown character set: 'utf8mb4'
* 虚拟主机导入MySQL数据出现以上报错:unknown collation:utf8mb4_unicode_ci,就是mysql版本高低造成的。终极解决方法就是MYSQL升级。如果采用虚拟主机的话,自然不是自己可以决定的,因此,处理方法如下:collation:utf8mb4_unicode_ci,就是mysql版本高低造成的。wordpress4.2版本之后升级了数据库,如果数据库是mysql5.5以上的互相导入没有问题,如果老网站是mysql5.5的,导入新网站是mysql5.5版本以下的,就会出现这个问题。终极解决方法就是MYSQL升级。如果采用虚拟主机的话,自然不是自己可以决定的,因此,处理方法如下:
# 目前大多数服务器数据库版本都是5.1的,如果你用的是阿里虚拟主机,又的确需要使用utf8mb4字符集,可以购买使用MySQL 5.5以上版本的RDS服务。
# 另一个解决方法:使用记事本打开.sql文件,通过ctrl+h将该文件的中的CHARSET = utf8mb4全部替换成CHARSET = utf8,将COLLATE = utf8mb4_unicode_ci 全部替换为COLLATE = utf8_general_ci,然后重新导入测试,修改之前建议先对源文件做备份。(建议先将之前导入的部分数据删除,将数据库清空再操作导入。)
* 根据wordpress官方的解释,在导入数据库之前,只需要把 utf8mb4编码转成utf-8就可以了,有两种方法可以替换数据库编码:
# 替换代码
## 从老的数据库中导出的数据库文件,用ue等代码编辑器打开。
## 查找:utf8mb4_unicode_ci,全部替换为:utf8_general_ci
## 查找:utf8mb4 全部替换为 utf8
## 按照顺序完成上面的操作。保存。
# 修改文件
## 修改wordpress的配置文件wp-config.php
## 把define(‘DB_CHARSET’, ‘utf8mb4’);改为define(‘DB_CHARSET’, ‘utf-8’);
## 完成之后,基本能解决问题了。
# 确认wp_posts表中两处参数:post_content,guid中的数据是否有链接错误,或者说是否链接到了原来的域名上
# 上述问题存在情况下,在数据库管理后台启动SQL命令:
UPDATE wp_posts SET post_content=replace(post_content,'无需http://的旧地址','无需http://的新地址')
UPDATE wp_posts SET guid=replace(post_content,'无需http://的旧地址','无需http://的新地址')
=phpmyadmin里MySQL字符集:cp1252 West European (latin1) ,解决乱码问题:=
* 使用虚拟主机空间上的phpmyadmin操作数据库的时候,如果看到phpmyadmin首页上显示的MySQL 字符集为cp1252 West European (latin1),当我们导入数据时就会出现乱码,解决的方法是:
# 在phpmyadmin首页的右边有个Language选项,把默认的中文 - Chinese simplified-gb2312改成 中文 - Chinese simplified
# 左边的MySQL 字符集会变成UTF-8 Unicode (utf8) ,乱码问题得到解决。