[MySQL] MySQL8.0创建用户后客户端远程连接报错ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' 解决

 

问题:MySQL8.0.14,创建普通用户账号后客户端远程连接报错:

Navicat客户端远程连接报错:1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client

CentOS主机上MySQL客户端连接报错:

ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory

原因:MySQL8.0开始默认密码插件caching_sha2_password,旧的客户端上面没有这个插件,所以报错。

 

解决:解决问题的思路有两种,一是给客户端安装插件,二是修改MySQL账号使用native加密方式。

思路一:升级MySQL客户端到最新版本,支持MySQL8.0的插件。

思路二:这种思路有两种实现方法,一是给单独指定用户修改native加密方式,二是直接修改MySQL服务端配置文件,默认使用native加密方式。

1) 单独修改指定用户的plugin

mysql> select user,host,plugin,authentication_string from mysql.user where user = 'user1' \G
*************************** 1. row ***************************
                 user: user1
                 host: %
               plugin: caching_sha2_password
authentication_string: 4im8KHnanNPJwRDVAItRhIE4h1hWv0hAcTBW1HH1mp0P&/G

mysql> ALTER USER 'user1'@'%' IDENTIFIED WITH 'mysql_native_password' BY '**************';
Query OK, 0 rows affected (0.02 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,plugin,authentication_string from mysql.user where user = 'user1' \G
*************************** 1. row ***************************
                 user: cindy
                 host: %
               plugin: mysql_native_password
authentication_string: *8D9EF6E3AC0CD4EB7A1FF096D3141F60BFA6104F
1 row in set (0.00 sec)

mysql> 

这种方式,需要针对指定的用户做配置修改,也可以在创建用户时指定native方式。 

 

2) 修改MySQL服务端配置文件

#停止MySQL服务
[root@vm ~]# systemctl stop mysqld

#修改MySQL配置文件
[root@vm ~]# vi /etc/my.cnf
#打开下面这一行配置的注释
default-authentication-plugin=mysql_native_password

#启动MySQL服务
[root@vm ~]# systemctl start mysqld

这种方式修改了服务端默认配置以后,新创建的用户都默认使用native的验证方式,不需要在创建用户时指定native。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值