mysql 的默认身份验证问题

本文解决PHP7.3.0连接MySQL8.0出现的认证方法未知错误,介绍如何通过修改身份认证插件为mysql_native_password来解决此问题,包括更改配置文件和直接修改用户设置两种方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 php 7.3.0 里,配置连接 MySQL 8.0 版本数据库的时候,会有错误
以下是错误信息:

Error: Unable to connect to MySQL.
Debugging errno: 2054
Debugging error: The server requested authentication method unknown to the client

查资料后发现,是 MySQL 8.0 的默认身份认证插件是 caching_sha2_password
更改成 mysql_native_password 即可

方式一:
更改mysql的配置文件(重启生效)

[mysqld]
default_authentication_plugin=mysql_native_password

注意,这样修改的是默认的身份认证插件
已经创建的账户的身份认证插件还是 caching_sha2_password
所以,要么删掉再创建账户,要么使用方式二修改
方式二:
mysql的repl执行以下语句:

ALTER USER user
  IDENTIFIED WITH mysql_native_password
  BY 'password';
  
如:
alter 'root'@'localhost' identified with mysql_native_password by '123456';

参考资料:
https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值