navicat链接数据库报2059问题
这个问题是我在网上clone项目因为mysql版本需要8.0以上的版本,于是我将自己的5.5版本的mysql换成了8.0版本的。后面测试本地链接的时候报2059。于是我上网查找资料原来是MySQL8版本它的默认认证加密规则是caching_sha2_password,因为navicat目前不支持caching_sha2_password加密, 如果我们想要用Navicat 去链接的话想要将mysql8版本的默认加密规则该为mysql_native_password。
解决方法:
1.cmd输入命令:mysql -u root -p 然后 Enter
2.输入数据库密码,然后Enter
3.执行这两个命令:use mysql 然后Enter,执行select user,plugin from user where user=’root’;命令,我们可以看到我们的加密方式是caching_sha2_password。这里由于本人的已经修改了就不贴出来了。
4.按顺序执行下面三个命令:
(1)修改默认的加密规则:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER;
(2)更新用户密码:ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;
(3)刷新权限:FLUSH PRIVILEGES;
注意:这里的password、root、localhost仅仅是我这边的,你要改为你自己的。
在使用 Navicat for Mysql连接mysql 8 时会报如下错误:
authentication plugin 'caching_sha2_password' cannot be loaded;
mysql8.0 引入了新特性 caching_sha2_password;这种密码加密方式客户端不支持;客户端支持的是mysql_native_password 这种加密方式;
解决办法
1.升级Navicat版本(自测Navicat15可以解决问题)
2.修改录密码加密规则还原mysql_native_password
方法:
以管理员身份运行 cmd,然后使用命令进入 mysql
mysql -uroot -proot
让密码永不失效
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE
NEVER;
然后再更改密码,更改加密规则
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY
‘新密码’;
最后在刷新一下数据库,如果不行的话重启下mysql服务
FLUSH PRIVILEGES;
在使用 DBEaver连接mysql 8 时会报如下错误:Public Key Retrieval is not allowed
1 修改DBEaver客户端将allowPublicKeyRetrieval 值设置为true
2 修改密码规则 ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY
‘新密码’;
备注:如果用户账号使用sha256_password认证,传输过程中必须保护密码;TLS 是首选机制,但如果它不可用,则将使用 RSA 公钥加密。要指定服务器的 RSA 公钥,请使用ServerRSAPublicKeyFile连接字符串设置,或设置AllowPublicKeyRetrieval=True为允许客户端自动从服务器请求公钥。请注意,这AllowPublicKeyRetrieval=True 可能允许恶意代理执行 MITM 攻击以获取明文密码,因此False默认情况下必须显式启用它。
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/7168.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~