解决连接MySql 8.x 出现 The server requested authentication method unknown to the client

1、原因:

因为mysql8升级了密码的验证方式 caching_sha2_password, 之前一直是mysql_native_password方式,而php都升级到7.2+不支持caching_sha2_password。

2、解决方法:

找到mysql的配置文件my.cnf,我的配置文件位置在/usr/local/etc/my.cnf(请自行找到自己的电脑的配置文件地址)。(docker容器是在/etc/mysql/my.conf)

2.1 在 [mysqld]下加入 一行

default_authentication_plugin=mysql_native_password

2.2 重启mysql

(Docker容器直接重启MySql容器即可)

3 进入mysql 修改登入mysql用户的登录验证方式

use mysql;
 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
 FLUSH PRIVILEGES;#刷新权限

提示:最好在创建用户的时候就加上:

CREATE USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

完成以上就可以进行客户端连接测试,如果还是不成功,则继续向下执行:

4.对远程连接进行授权:

mysql> GRANT ALL ON *.* TO 'root'@'%';

5.更改密码的加密规则:

mysql> ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

6.更改root的密码:

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; 

7.刷新权限:

mysql> flush privileges;

8.使用客户端测试;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值