SQLyog连接MySQL8.0+报错:错误码2058的解决方案
作者:simplyou
使用sqlyog连接数据库过程中出现2058错误,出现的原因是因为MYSQL8.0对密码的加密方式进行了改变,这篇文章主要给大家介绍了关于SQLyog连接MySQL8.0+报错:错误码2058的解决方案,需要的朋友可以参考下
最近把mysql从5.7迁移到8.3.0发现连接不上 因为 MySQL 从 8.0 版本开始,新增了caching_sha2_password
授权插件
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+后,无论连接用户使用什么授权插件,都可连接上。
到此这篇关于SQLyog连接MySQL8.0+报错:错误码2058的解决方案的文章就介绍到这了,更多相关SQLyog连接MySQL8.0报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!