MySQL 的认证插件

navicat 连接 MySQL 8 出现 2059 错误就是和这个东西有关。

1. 认证插件

MySQL Server 中有专门的"部件"来验证你所提供密码的正确性:认证插件。MySQL Server 中
有多种认证插件。
在创建一个用户、修改用户密码时,需要指定 MySQL Server 使用那种认证插件来处理这个密
码。 这个感觉有点类似:MySQL 支持多种数据库引擎( Engine ),你在创建表时,需要为表指定某种数据库
引擎。
MySQL 8.0.4 之前默认的认证插件是 mysql_native_password ,而从 8.0.4 开始,将默认的
认证插件改成了 caching_sha2_password 。
这也是为什么从 8.0.4 开始不支持  SET PASSWORD FOR ... 的方式更新密码了。
如果你想「影响」认证插件,有 2 种方式:
1. 修改  MYQL SERVER 的配置文件,在配置文件中指定默认的认证插件。

[mysqld]
...
default_authentication_plugin=mysql_native_password
...

2. 在设置用户密码时,指定处理该用户密码的认证插件,去「覆盖」默认的认证插件。例如

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;

2. Navicat 连接 MySQL 出现 2059 错误

由于低版本的 Navicat 使用的数据库驱动版本也比较低,无法配合 MySQL 8.0.4  ( 及以上版
本 ) 的 caching_sha2_password 密码认证插件,因此导致了,你输入了正确的用户名密码也
无法连上 MySQL Server ( 报 2059 错误 ) 。
对于这种情况,有 以下几种解决办法:

(1). 使用更高版本、更新的 Navicat ;
(2). 换别的数据库客户端,例如,sqlyog ;
(3). 修改登录用户的密码,其实重点是修改密码是去改密码认证器,改成mysql_native_password;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值