SQLyog连接MySQL8.0+报错:错误码2058的解决方案

发布于:2024-03-29 ⋅ 阅读:(44) ⋅ 点赞:(0)

最近把mysql从5.7迁移到8.3.0发现连接不上 因为 MySQL 从 8.0 版本开始,新增了caching_sha2_password授权插件
技术博客 http://idea.coderyj.com/

1.更换sqlyog 更新到13.1.3之后的版本

2.取消mysql8的加密授权机制

mysql> ALTER USER 'sqlyog'@'%' IDENTIFIED WITH mysql_native_password BY 'mysql8.0.';
Query OK, 0 rows affected (0.03 sec)

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

mysql> SELECT user,host,plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | caching_sha2_password |
| sqlyog           | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
5 rows in set (0.00 sec)

3.更改my.cnf配置文件

找到这些文件修改 以docker容器为例

/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf

win 下的文件

C:\Users\Administrator>mysql --help | findstr "my.ini"
C:\WINDOWS\my.ini C:\WINDOWS\my.cnf C:\my.ini C:\my.cnf D:\Chen\MySoft\mysql-8.1.0-winx64\my.ini D:\Chen\MySoft\mysql-8.1.0-winx64\my.cnf

按顺序找配置文件,找到后打开配置文件,在配置文件的[mysqld]下添加如下配置

default-authentication-plugin=mysql_native_password

在这里插入图片描述
重启mysql服务

4.总结

  • 严格来说上述方案3、方案2是一样的(不太推荐方案3)。
  • 方案3仅是将服务器默认的授权插件改为了mysql_native_password,它仅对新创建的用户起作用(前提是创建用户时没有指定授权插件),并不会影响已有的用户的加密方式。如果想使用已有用户连接mysql,需使用方案2重新设置其授权插件及密码。
  • 方案1 更新SQLyog的方案还是值得尝试的,毕竟是一劳永逸的事儿。更新SQLyog 13.1.3+后,无论连接用户使用什么授权插件,都可连接上。

网站公告

今日签到

点亮在社区的每一天
去签到