caching_sha2_password连接由外部主机关闭

时间:2018-05-27 12:48:56

标签: java mysql docker

我使用url:

在docker中创建mysql容器
  

JDBC:MySQL的://172.17.0.2:3306 / '的databaseName'

172.17.0.2是docker容器的ip地址。 我创建用户:

 CREATE USER 'saman'@'%' IDENTIFIED BY 'password';
 GRANT ALL PRIVILEGES ON *.* TO 'saman'@'%'  WITH GRANT OPTION;

当我想从intllje连接时我连接成功,但是当我想从我的java应用程序连接时,我得到了例外:

 Caused by: com.mysql.cj.core.exceptions.WrongArgumentException: Unable 
to load authentication plugin 'caching_sha2_password'

我也在mysql用户中将默认验证密码从 caching_sha2_password 更改为 mysql_native_password 。 有关使用telnet命令的更多信息:

  

telnet 172.17.0.2 3306 返回   caching_sha2_passwordConnection被外国主机关闭。

先谢谢。

2 个答案:

答案 0 :(得分:0)

你遇到了这个问题,因为所有新的MySQL版本附带了添加的身份验证插件,称为“caching_sha2_password”,但你可以通过使用以下声明来绕过它。

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

答案 1 :(得分:0)

最后,我找到了我的问题的解决方案。 我连接到mysql命令行并运行以下查询:

  

改变用户' saman' @'%'通过'密码'用mysql_native_password标识;

然后在phpmyadmin中,异常消失了。 您可以使用以下方法检查上述查询的结果:

  

从mysql.user;

中选择user,host,authentication_string,plugin

你必须在' saman'前面看到 mysql_native_password 。用户。

相关问题