这个错误通常在尝试通过MySQL使用SHA-256密码验证时发生。
解决方案如下:
-
直接在数据库连接字符串上加上参数allowPublicKeyRetrieval=true,这里的useSSL=false被添加是为了避免SSL错误,但是注意的是:在生产环境中,禁用SSL可能会导致数据传输不安全的风险,所以需要配置正确的SSL连接。注意!!!:allowPublicKeyRetrieval=true可能在某些情况下存在安全风险,因为它允许客户端从服务器获取RSA公钥
jdbc:mysql://localhost:3306/mydatabase?allowPublicKeyRetrieval=true&useSSL=false
-
在mysql服务端修改,把用户认证方式改为mysql_native_passwor
-
使用root用户登录mysql:
mysql -u root -p
-
选择mysql库
USE mysql;
-
用户的认证方式改为
mysql_native_password,并刷新权限设置:
ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
FLUSH PRIVILEGES;
-