SQLyog 连接 MySQL 8.0.24 报错 2058 的解决方法
问题描述:使用 SQLyog 连接远程 MySQL 8.0.24 数据库时,出现以下报错信息:
Error No. 2058
Authentication plugin 'caching\_sha2\_password' cannot be loaded
一、错误原因解析
MySQL 从 8.0 版本开始,默认使用新的认证插件:caching_sha2_password
,而 SQLyog 较旧版本默认使用的是 mysql_native_password
插件。
由于认证插件不一致,就会导致 2058 错误。
二、解决方法
方法一:修改用户密码认证插件(推荐)
在服务器上登录 MySQL,使用以下命令将远程用户的认证插件修改为 mysql_native_password
:
ALTER USER 'your_username'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password';
FLUSH PRIVILEGES;
your_username
是你连接的 MySQL 用户名
your_password
是你该用户的登录密码
'%'
表示允许任意主机访问该用户
方法二:创建新用户并使用 mysql_native_password
插件
如果你不想修改已有用户,也可以创建一个新用户并指定使用兼容插件:
CREATE USER 'sql_user'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'sql_user'@'%';
FLUSH PRIVILEGES;
三、检查远程访问权限(可选)
确保你已正确配置 MySQL 允许远程连接:
1. 修改配置文件(my.cnf 或 mysqld.cnf)
[mysqld]
bind-address = 0.0.0.0
重启 MySQL 服务:
sudo systemctl restart mysql
2. 防火墙放行 3306 端口(如适用)
sudo ufw allow 3306
四、验证连接
在 SQLyog 中填写如下信息:
- 主机名/IP:远程服务器 IP
- 用户名:你设置的用户名
- 密码:你设置的密码
- 端口:3306(或自定义端口)
- 连接成功 🎉
五、总结
问题 | 原因 | 解决方案 |
---|---|---|
SQLyog 报错 2058 | 身份验证插件不兼容 | 修改为 mysql_native_password |
仍无法连接 | 端口或远程访问权限问题 | 检查 MySQL 配置和防火墙 |
参考资料
如果你觉得这篇文章有帮助,欢迎点赞 👍 收藏 ⭐ 留言交流 💬