WordPress Error establishing a database connection

WordPress Error establishing a database connection Mysql80建立数据库连接时出错

建立数据库连接时出错
这或者意味着文件中的用户名和密码信息wp-config.php不正确,或者我们无法联系数据库服务器localhost。这可能意味着主机的数据库服务器已关闭。

您确定拥有正确的用户名和密码吗?
您确定已键入正确的主机名吗?
您确定数据库服务器正在运行吗?
如果您不确定这些术语的含义,您应该联系您的主人。如果您仍需要帮助,可以随时访问WordPress支持论坛。

2024062504

出现这个问题有几种可能,最常见几种就是用户名密码或者数据库名打错了。

还有一种可能就是你的mysql加密方式不一样。

  1. mysql_native_password 身份验证插件现在已被弃用:这意味着 MySQL 不再推荐或支持使用 mysql_native_password 插件进行用户身份验证。mysql_native_password 是一种较早的身份验证方式,它使用不太安全的哈希算法来存储密码。
  2. 弃用警告插入到错误日志中:如果某个账户尝试使用 mysql_native_password 进行身份验证,那么在错误日志中将插入一条弃用警告。这意味着 MySQL 将记录所有尝试使用不安全的 mysql_native_password 进行身份验证的操作,以提醒管理员和开发者注意这个变化,并考虑升级到更安全的身份验证方式。
  3. 未来版本可能移除 mysql_native_password:虽然当前版本中仍然支持 mysql_native_password,但在将来的 MySQL 版本中,可能会完全移除这个身份验证插件。因此,用户应该考虑迁移到更安全的身份验证方式,例如 caching_sha2_password

总的来说,这段文字是 MySQL 开发团队发出的警告,提醒用户不要再依赖或使用 mysql_native_password 插件进行身份验证,而是应该迁移到更安全的替代方案。

如果你需要mysql_native_password的加密,修改如下!

如果你需要caching_sha2_password,请将中文的mysql_native_password替换为caching_sha2_password

建议使用:caching_sha2_password

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

连接本机Mysql,输入命令后,会提示输入密码

mysql -uroot -p

如果是宝塔用户,root密码在“数据库——root密码”查看!

查询加密方式

先输入 use mysql ;

再输入 select host,user,plugin from user; 

use mysql;
select host,user,plugin from user;

查看加密方式,就是 plugin 这个下面显示。

20190207212102454

修改加密方式

caching_sha2_password 是一种新的加密方式,wp和discuz 有些版本 是不支持的,所以这个时候要修改一下。

输入指令 update user set plugin=’mysql_native_password’ where user=’root’;

update user set plugin='mysql_native_password' where user='root';

2024062501

输入指令:ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的密码’;

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

然后在输入前面那个指令看一下 select host,user,plugin from user; 

2024062502

最后输入最后一个更新权限指令: flush privileges;

flush privileges;

然后退出重启就行了。

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

一般完成第1步修改mysql_native_password验证方式的密码,就可以正常访问wordpress了。

如果修改完后,还显示同样问题,则需要修改mysql的验证机制,配置文件在/etc/my.cnf。

在配置文件中,新增一行,或者找到这一行,取消注释。

default-authentication-plugin=mysql_native_password

改完配置后,重启mysql。

sudo systemctl restart mysqld

MY-013360日志

日志中有大量的’mysql_native_password’ 已弃用警告信息,多者甚至达到上万条。

临时解决

编辑 /etc/my.cnf 并在 [mysqld] 部分下添加以下行:

log_error_suppression_list='MY-013360'

log_error_suppression_list 是 MySQL 中的一个配置选项,用于指定哪些特定的错误或警告不应该被记录到错误日志中。

终极解决

将所有的加密改为最新的caching_sha2_password

update user set plugin='caching_sha2_password' where user='root';

编辑 /etc/my.cnf 并在 [mysqld] 修改下行为:

default_authentication_plugin=caching_sha2_password
© 版权声明
THE END
如果喜欢,可以【点赞】【分享】【收藏】
点赞7赞赏分享
评论 抢沙发
头像
非注册用户需审核通过后才能查看。友好交流,勿发纯表情,勿恶意灌水!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容