这个问题在这里已经有答案了:
如何解决无法加载验证插件“缓存\u sha2\u密码”问题(16个答案)
两年前关门了。
我在docker中创建mysql容器,url为:
jdbc:mysql://172.17.0.2:3306/“数据库名”
172.17.0.2是docker容器的ip地址。我创建用户时使用:
CREATE USER 'saman'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'saman'@'%' WITH GRANT OPTION;
当我想从intllje ide连接时,我连接成功,但当我想从java应用程序连接时,我得到了一个例外:
Caused by: com.mysql.cj.core.exceptions.WrongArgumentException: Unable
to load authentication plugin 'caching_sha2_password'
此外,我还将mysql用户中的默认身份验证密码从缓存\u sha2 \u密码更改为mysql \u本地\u密码。有关使用telnet命令时的详细信息: telnet 172.17.0.2 3306
return:缓存\u sha2\u passwordconnection被外部主机关闭。
提前谢谢。
2条答案
按热度按时间sauutmhj1#
我终于找到了问题的解决办法。我连接到mysql命令行并运行以下查询:
用“password”更改用户“saman”@“%”,用mysql\u native\u password标识;
然后在phpmyadmin中,异常消失了。您可以通过以下方式检查上述查询的结果:
从mysql.user中选择user、host、authentication\u string、plugin;
您必须在“saman”用户面前看到mysql\u native\u密码。
kh212irz2#
您遇到这个问题是因为所有新的mysql版本都添加了身份验证插件,称为“caching\u sha2\u password”,但是您可以使用下面的语句绕过这个问题。