我升级了PHP和MySQL版本后,就会产生此错误
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
感谢...
答案 0 :(得分:0)
这是MySql的版本,在8.0版之后,它不支持caching_sha2_password插件
但是,如果不能更改版本,则可以尝试将其添加到mysql配置文件中,然后重新启动服务器
[mysqld]
default-authentication-plugin=mysql_native_password
答案 1 :(得分:0)
一个可能的解决方案是更改mysql的默认用户或mysql的根用户的身份验证插件。
只需以root用户身份登录mysql控制台(terminal / 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]
答案 2 :(得分:-2)
一个额外的建议:
如果问题仍然存在,请尝试以管理员身份运行IDE。
我完成了在StackOverflow中几个答案中看到的所有步骤,但是只有在以管理员身份运行PhpStorm之后,我才能成功登录。