缓存_sha2_password mysql错误

Posted

技术标签:

【中文标题】缓存_sha2_password mysql错误【英文标题】:caching_sha2_password mysql error 【发布时间】:2018-12-30 14:01:58 【问题描述】:

当我升级我的 phpmysql 版本时,会产生这个错误

Warning: mysqli::__construct(): The server requested authentication method unknown to the client [caching_sha2_password]
Warning: mysqli::__construct(): (HY000/2054): The server requested authentication method unknown to the client in

我正在使用这个版本:

Codeigniter : 3.1.9 
PHP         : 7.2.6
MySql       : 8.0.11

谢谢...

【问题讨论】:

【参考方案1】:

一个可能的解决方案是更改 mysql 的默认用户或 mysql 的 root 用户的身份验证插件。

只需以 root 用户身份登录 mysql 控制台(终端/phpmyadmin), 并将密码重置为

ALTER USER 'mysqlUsername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mysqlUsernamePassword';

为了安全起见,我会以这种方式更改所有现有用户的密码,

您可以通过 , 获取现有用户及其字段的列表,

use mysql ;

select * from user \G;

我从一开始就以这种方式设置 mysql 并且没有出现此类错误。

参考: php mysqli_connect: authentication method unknown to the client [caching_sha2_password]

phpMyAdmin on MySQL 8.0

【讨论】:

【参考方案2】:

是MySql的版本,8.0以后不支持caching_sha2_password插件

但是,如果无法更改它的版本,您可以尝试将其添加到您的 mysql 配置文件中,然后重新启动服务器

[mysqld]
default-authentication-plugin=mysql_native_password

【讨论】:

当我遇到这个问题时,它对我有用,注意加载的配置文件,还有更多,也许你改错了,你应该重启你的 mysql 服务器,而不是阿帕奇 我在 my.cng 文件中进行了更改【参考方案3】:

一个额外的建议:

如果问题仍然存在,请尝试以管理员身份运行 IDE。

我完成了在 *** 的几个答案中看到的所有步骤,但只有在我以管理员身份运行 PhpStorm 后,我才能成功登录。

【讨论】:

为什么以不同的权限运行 IDE 会影响代码的执行? 嗨路易斯。欢迎来到 ***。不直接回答问题的输入,例如您提出的建议,应作为 cmets 发布。 (我知道您可能没有足够的声誉立即对问题发表评论 - 但就是这样,抱歉。)

以上是关于缓存_sha2_password mysql错误的主要内容,如果未能解决你的问题,请参考以下文章

Navicat 连接mysql 报错: Authentication plugin caching_ sha2_password cannot be loaded

如何实现python的mysql连接池并加入缓存过期

MySQL 性能优化的最佳20多条经验分享

数据库mysql——MySQL 性能优化的最佳20多条经验分享

php 连接mysql 错误排查一例

使用 $_SESSION 缓冲/缓存 MySQL 查询