这个错误是因为 MySQL 8.0 默认使用 caching_sha2_password 插件进行身份验证,而旧版本的 MySQL 驱动程序不支持该插件。
有两种解决方法:
1. 升级 MySQL 驱动程序版本到最新版(>=8.0.11),该版本已经支持 caching_sha2_password 插件。
2. 将 MySQL 用户的身份验证方式改为 mysql_native_password,可以通过以下步骤实现:
a. 使用 root 用户登录 MySQL
b. 执行以下命令:
ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
其中,username 是你要修改的用户名,localhost 是你要连接的主机名,password 是你要设置的密码。
如果要修改所有用户的身份验证方式,可以使用以下命令:
ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;
c. 重启 MySQL 服务。