Navicat远程连接MySQL报错2059

使用Navicat远程连接MySQL镜像偶尔报错如下:

vTFFoR.png

 

原因:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password

docker容器进入MySQL后台执行如下SQL:

#更新加密方式
1. ALTER USER 'root'@'%' IDENTIFIED BY '你的密码' PASSWORD EXPIRE NEVER; 
#更新密码
2. ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
#刷新权限
3.FLUSH PRIVILEGES

连接本地mysql本地服务报错2059,也是同样的解决方式:

#1. 查看user的root对应的host
mysql> select user,host from user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)


#2. 修改加密规则
#第一个root为用户名,第二个root为密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
Query OK, 0 rows affected, 1 warning (0.00 sec)


#3.刷新权限
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

#本地再次连接  连接成功

  

posted @ 2022-09-04 17:25  大青橙子  阅读(523)  评论(0编辑  收藏  举报