本文将总结如何解决 SQLyog 连接 MySQL8.0+ 时报错:错误号码2058
一、问题现象
使用SQLyog连接MySQL8.0+数据库时,报错:
错误号码2058 Plugin caching_sha2_password could not be loaded
二、原因分析
出现这个问题,是因为 MySQL 从 8.0 版本开始,新增了caching_sha2_password
授权插件,并且新建用户时默认使用该插件进行加密,而你的 SQLyog 版本无法识别该加密方式加密的密码。
(多数情况下是你的SQLyog版本过时了,新的SQLyog已支持识别caching_sha2_password
加密方式的密码)
MySQL :: MySQL 8.0 Reference Manual :: 5.1.8 Server System Variables
三、解决方案
1. 方案1:更新SQLyog版本
查看你的SQLyog安装路径下,是否有caching_sha2_password.dll
动态库,如果没有则说明你的SQLyog版本,不支持通过caching_sha2_password
加密的用户进行连接数据库。
查看了一下SQLyog的发布历史:Version History - 2019 - SQLyog Knowledge Base (webyog.com)
从SQLyog 13.1.3
开始,才支持caching_sha2_password
授权插件
如果你需要更新SQLyog,你可能需要 SQLyog 各版本下载与安装
2. 方案2:修改用户的授权插件
使用有mysql.user
表权限的用户连接mysql并执行如下命令:
mysql> ALTER USER 'sqlyog'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234qwer';
Query OK, 0 rows affected (0.03 sec)
mysql> FLUSH PRIVILEGES;
Query O