“博客Wordpress网站迁移问题点集锦”的版本间的差异

来自DeerGrove Wiki
跳转至: 导航搜索
 
(未显示2个用户的4个中间版本)
第1行: 第1行:
[[category:随记]]
+
[[category:IS]]
  
 
= Wordpress 4.9迁移到低版本MYSQL问题点 =
 
= Wordpress 4.9迁移到低版本MYSQL问题点 =
第5行: 第5行:
 
   #1115 - Unknown character set: 'utf8mb4'  
 
   #1115 - Unknown character set: 'utf8mb4'  
  
* 虚拟主机导入MySQL数据出现以上报错:unknown collation:utf8mb4_unicode_ci,就是mysql版本高低造成的。
+
* 虚拟主机导入MySQL数据出现以上报错:unknown collation:utf8mb4_unicode_ci,就是mysql版本高低造成的。wordpress4.2版本之后升级了数据库,如果数据库是mysql5.5以上的互相导入没有问题,如果老网站是mysql5.5的,导入新网站是mysql5.5版本以下的,就会出现这个问题。终极解决方法就是MYSQL升级。如果采用虚拟主机的话,自然不是自己可以决定的,因此,处理方法如下:
终极解决方法就是MYSQL升级。如果采用虚拟主机的话,自然不是自己可以决定的,因此,处理方法如下:
 
 
# 目前大多数服务器数据库版本都是5.1的,如果你用的是阿里虚拟主机,又的确需要使用utf8mb4字符集,可以购买使用MySQL 5.5以上版本的RDS服务。
 
# 目前大多数服务器数据库版本都是5.1的,如果你用的是阿里虚拟主机,又的确需要使用utf8mb4字符集,可以购买使用MySQL 5.5以上版本的RDS服务。
 
# 另一个解决方法:使用记事本打开.sql文件,通过ctrl+h将该文件的中的CHARSET = utf8mb4全部替换成CHARSET = utf8,将COLLATE = utf8mb4_unicode_ci 全部替换为COLLATE = utf8_general_ci,然后重新导入测试,修改之前建议先对源文件做备份。(建议先将之前导入的部分数据删除,将数据库清空再操作导入。)
 
# 另一个解决方法:使用记事本打开.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’);
 +
## 完成之后,基本能解决问题了。
  
* 更改域名后附件、图片显示不正常、错误
+
=Wordpress更改域名后附件、图片显示不正常、错误=
 
# 确认wp_posts表中两处参数:post_content,guid中的数据是否有链接错误,或者说是否链接到了原来的域名上
 
# 确认wp_posts表中两处参数:post_content,guid中的数据是否有链接错误,或者说是否链接到了原来的域名上
 
# 上述问题存在情况下,在数据库管理后台启动SQL命令:
 
# 上述问题存在情况下,在数据库管理后台启动SQL命令:
   UPDATE wpdg_posts SET post_content=replace(post_content,'无需http://的旧地址','无需http://的新地址')
+
   UPDATE wp_posts SET post_content=replace(post_content,'无需http://的旧地址','无需http://的新地址')
   UPDATE wpdg_posts SET guid=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) ,乱码问题得到解决。

2021年12月15日 (三) 11:19的最新版本


Wordpress 4.9迁移到低版本MYSQL问题点

导出版本为5.7,迁入版本是5.1,报错:

 #1115 - Unknown character set: 'utf8mb4' 
  • 虚拟主机导入MySQL数据出现以上报错:unknown collation:utf8mb4_unicode_ci,就是mysql版本高低造成的。wordpress4.2版本之后升级了数据库,如果数据库是mysql5.5以上的互相导入没有问题,如果老网站是mysql5.5的,导入新网站是mysql5.5版本以下的,就会出现这个问题。终极解决方法就是MYSQL升级。如果采用虚拟主机的话,自然不是自己可以决定的,因此,处理方法如下:
  1. 目前大多数服务器数据库版本都是5.1的,如果你用的是阿里虚拟主机,又的确需要使用utf8mb4字符集,可以购买使用MySQL 5.5以上版本的RDS服务。
  2. 另一个解决方法:使用记事本打开.sql文件,通过ctrl+h将该文件的中的CHARSET = utf8mb4全部替换成CHARSET = utf8,将COLLATE = utf8mb4_unicode_ci 全部替换为COLLATE = utf8_general_ci,然后重新导入测试,修改之前建议先对源文件做备份。(建议先将之前导入的部分数据删除,将数据库清空再操作导入。)
  • 根据wordpress官方的解释,在导入数据库之前,只需要把 utf8mb4编码转成utf-8就可以了,有两种方法可以替换数据库编码:
  1. 替换代码
    1. 从老的数据库中导出的数据库文件,用ue等代码编辑器打开。
    2. 查找:utf8mb4_unicode_ci,全部替换为:utf8_general_ci
    3. 查找:utf8mb4 全部替换为 utf8
    4. 按照顺序完成上面的操作。保存。
  2. 修改文件
    1. 修改wordpress的配置文件wp-config.php
    2. 把define(‘DB_CHARSET’, ‘utf8mb4’);改为define(‘DB_CHARSET’, ‘utf-8’);
    3. 完成之后,基本能解决问题了。

Wordpress更改域名后附件、图片显示不正常、错误

  1. 确认wp_posts表中两处参数:post_content,guid中的数据是否有链接错误,或者说是否链接到了原来的域名上
  2. 上述问题存在情况下,在数据库管理后台启动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),当我们导入数据时就会出现乱码,解决的方法是:
  1. 在phpmyadmin首页的右边有个Language选项,把默认的中文 - Chinese simplified-gb2312改成 中文 - Chinese simplified
  2. 左边的MySQL 字符集会变成UTF-8 Unicode (utf8) ,乱码问题得到解决。