本机搞开发环境,打开 SQLyog 连 MySQL 8.0,直接弹了个 2058 错误,提示 caching_sha2_password 插件不能载入。其实这毛病很常见,就是 MySQL 8.0 把默认认证方式换成了 caching_sha2_password,而许多旧版客户端只认 mysql_native_password。
登录 MySQL 命令行查一下当前 root 用的插件:
USE mysql;
SELECT user, host, plugin FROM user WHERE user = 'root';
如果 plugin 那一列显示 caching_sha2_password,那问题就清楚了。
最快的修法:把 root 的认证插件改回 mysql_native_password。执行下面两条命令(记得换成自己的密码):
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
FLUSH PRIVILEGES;
然后重连 SQLyog,一般就好了。当然,生产环境最好还是升级客户端,用 caching_sha2_password 更安全。

