“博客Wordpress网站迁移问题点集锦”的版本间的差异
Administrator(讨论 | 贡献) |
|||
第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 | + | * 虚拟主机导入MySQL数据出现以上报错:unknown collation:utf8mb4_unicode_ci,就是mysql版本高低造成的。wordpress4.2版本之后升级了数据库,如果数据库是mysql5.5以上的互相导入没有问题,如果老网站是mysql5.5的,导入新网站是mysql5.5版本以下的,就会出现这个问题。终极解决方法就是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’); | ||
+ | ## 完成之后,基本能解决问题了。 | ||
− | + | =更改域名后附件、图片显示不正常、错误= | |
# 确认wp_posts表中两处参数:post_content,guid中的数据是否有链接错误,或者说是否链接到了原来的域名上 | # 确认wp_posts表中两处参数:post_content,guid中的数据是否有链接错误,或者说是否链接到了原来的域名上 | ||
# 上述问题存在情况下,在数据库管理后台启动SQL命令: | # 上述问题存在情况下,在数据库管理后台启动SQL命令: | ||
UPDATE wp_posts SET post_content=replace(post_content,'无需http://的旧地址','无需http://的新地址') | UPDATE wp_posts SET post_content=replace(post_content,'无需http://的旧地址','无需http://的新地址') | ||
UPDATE wp_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月7日 (二) 20:46的版本
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升级。如果采用虚拟主机的话,自然不是自己可以决定的,因此,处理方法如下:
- 目前大多数服务器数据库版本都是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) ,乱码问题得到解决。