记一次wordpress升级迁移数据库遇到的问题

前言

由于某种原因,个人服务器的mysql需要从mysql5升级到mysql8,但是版本升级之后,wordpress遇到各种问题,就此记录一下。本文相关的环境为,centos7 + nginx + mysql8 + php7。
关于mysql版本升级的文章,可以参考《linux mysql5.7升级到mysql8.0》
有需要自己部署wordpress个人网站的,可以参考本站《lnmp+wordpress手动搭建》

问题一:php缺少mysql插件,Your PHP Installation Appears to Be Missing the MySQL Extension Which Is Required by WordPress

问题描述

如果显示这个问题,说明php缺少了mysql的插件,具体原因可以参考这篇博客
首先确认一下,是否真的缺少了插件。我们通过访问phpinfo页面,查询php已安装的插件。
把下面语句,新建一个php文件放到网站根目录即可。

<?php
phpinfo( );
?>

如下图,如果你看不到以下mysqli和mysqlnd的内容,说明就是缺少了mysql插件。那么需要自行安装插件。

file

解决方案

首先删除php-mysql插件,这一步其实可以不做,但为了以防万一,还是尝试把php-mysql删除。

yum remove php-mysql

再通过yum安装php-mysql插件

yum install -y php70w-mysqlnd

安装成功后,通过下面代码查看mysqlnd插件

php -i | grep mysqlnd

显示如下信息,就是mysql插件安装成功。

file

重启web服务即可。

sudo systemctl restart httpd

但是!
这个时候,我遇到了另一个问题。

httpd重启失败!

然后参考了这篇文章《http启动(重启)报错》

file

从上图,很明显看到是80端口被占用了,所以按照该文提示的,把占用80端口的进程关掉即可。然而我的情况是,nginx占用了80端口。为了避免同样情况再次发生,我是采用了修改httpd的默认端口。方法如下:

找到httpd的配置文件,再修改端口。

vim /etc/httpd/conf/httpd.conf

找到Listen 80这一行,修改为你想要的端口。
然后再重启httpd服务即可。
这时候再重新访问刚开始的phpinfo页面,就能找到已经安装的mysqli和myslqnd插件了。

问题二:wordpress连接mysql失败,Error establishing a database connection

以为把php-mysql插件安装好了,问题就得以解决,但还是遇到了这个,连接mysql失败。这个情况,首先是检查自己wordpress根目录下面的wp-config.php,里面填写的mysql登陆信息是否正确。如果正确,则需要以下方法解决。

问题如图

file

解决方案

由于mysql8对密码的加密方式修改成了caching_sha2_password,wordpress网站连接mysql,实际就是通过php连接mysql,而php所带的mysqlnd(就是问题一安装的mysql插件),并不支持caching_sha2_password这种验证方式,因此需要修改mysql的验证方式。具体解决如下:

1、修改mysql的账号密码和验证方式

进入mysql,通过以下语句修改wordpress的mysql账号密码。IDENTIFIED WITH mysql_native_password BY 'password' 这一句一定要一次过写,不要分开设置。

mysql> ALTER USER 'username'@'locaohost' IDENTIFIED WITH mysql_native_password BY 'password';
mysql> flush privileges;

修改完密码后,建议查询user表,检查一下是否修改成功。

file

2、修改mysql的默认验证机制

一般完成第1步修改mysql_native_password验证方式的密码,就可以正常访问wordpress了。如果修改完后,还显示同样问题,则需要修改mysql的验证机制,配置文件在/etc/my.cnf
在配置文件中,新增一行,或者找到这一行,取消注释。

default-authentication-plugin=mysql_native_password

改完配置后,重启mysql。

sudo systemctl restart mysqld

完成这一步,wordpress终于可以正常访问了。

评论

  1. wing
    1 年前
    2024-4-04 23:07:45

    吓得我不敢升级了。php7+mysql5.7再用100年。

    • 博主
      wing
      1 年前
      2024-4-11 14:42:29

      没事的,多折腾,技术才能提升😂

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇