记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

解决 SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

2019-08-14 12:40

连接MYSQL数据库时报错:

SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

解决 SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

原因

由于MySQL 8默认使用了新的密码验证插件:caching_sha2_password,而低版本的PHP版本中所带的mysqlnd无法支持这种验证。故报“请求客户端未知的身份验证方法”。

解决方法一

升级PHP支持MySQL 8的新验证插件。

7.1.20 - PHP 7.2.8或更高版本PHP已经可以支持caching_sha2_password,直接连接MySQL 8。检查你的PHP版本以确定问题。

可以通过phpinfo()函数了解当前安装的PHP是否支持caching_sha2_password:

解决 SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

解决方法二

MySQL 8中创建(或修改)使用caching_sha2_password插件的账户,使之使用mysql_native_password。

  1. 在CREATE USER时,使用IDENTIFIED WITH xxx_plugin BY ‘password‘,比如:CREATE USER 'native'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password!2#4';
  2. 使用ALTER USER修改已有账户的验证插件:ALTER USER 'native'@'localhost' IDENTIFIED WITH mysql_native_password或ALTER USER 'native'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';采用前一种方式,账户的密码将被清除;BY子句将为账户设置新的密码。
  3. /etc/my.cnf配置文件中,有一行:# default-authentication-plugin=mysql_native_password请删除注释符号“#”并重新启动mysqld使之生效,此后创建的账户均默认使用mysql_native_password。
  4. 如果您完成MySQL Server的安装之后,在没有启动过mysqld服务的情况下修改/etc/my.cnf配置,那么启动mysqld之后创建的‘root‘@‘localhost‘账户也是使用mysql_native_password插件的。

也可以直接在客户端修改如图:

解决 SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

知识来源: https://www.uedbox.com/post/58991/

阅读:271376 | 评论:0 | 标签:无

想收藏或者和大家分享这篇好文章→复制链接地址

“解决 SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

黑帝公告 📢

永久免费持续更新精选优质黑客技术文章Hackdig,帮你成为掌握黑客技术的英雄

↓赞助商 🙇🧎

标签云 ☁