缓存\u sha2 \u密码连接被外部主机关闭

thtygnil  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(304)

这个问题在这里已经有答案了

如何解决无法加载验证插件“缓存\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被外部主机关闭。
提前谢谢。

sauutmhj

sauutmhj1#

我终于找到了问题的解决办法。我连接到mysql命令行并运行以下查询:
用“password”更改用户“saman”@“%”,用mysql\u native\u password标识;
然后在phpmyadmin中,异常消失了。您可以通过以下方式检查上述查询的结果:
从mysql.user中选择user、host、authentication\u string、plugin;
您必须在“saman”用户面前看到mysql\u native\u密码。

kh212irz

kh212irz2#

您遇到这个问题是因为所有新的mysql版本都添加了身份验证插件,称为“caching\u sha2\u password”,但是您可以使用下面的语句绕过这个问题。

GRANT ALL PRIVILEGES ON *.* TO 'saman'@'%'  IDENTIFIED WITH mysql_native_password WITH GRANT OPTION;

相关问题