mysql可以在本地连接,但只能远程连接

时间:2019-02-14 05:17:55

标签: mysql

我有一个 tomcat 8 网络服务器,并尝试连接本地 mysql 5.7 ,但是出现以下错误:

原因:

SQLNestedException: Cannot create PoolableConnectionFactory (Client does not support authentication protocol requested by server

我用Google搜索,有人建议更新密码,我也做了,但是对我不起作用。

我做了

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'

flush privileges;

当前,我只能使用公共IP地址连接回本地数据库。...

1 个答案:

答案 0 :(得分:0)

MYSQL从版本4.1开始更改了密码存储方法。如果您的客户端尝试以旧方式连接,并且服务器以新方式存储了密码,那么您将收到该错误消息。为了解决这个问题,您有2种选择:

  • 检查tomcat服务器上的设置
  • 更改mysql服务器中的密码哈希,以与4.1之前的版本兼容

如果您想更改密码以使用旧的哈希类型,请使用以下命令:

mysql> SET PASSWORD FOR
-> 'some_user'@'some_host' = OLD_PASSWORD('new_password');

此后,您必须将old_passwords系统变量设置为1来启动mysql服务器

另一方面,我认为解决此问题的最佳方法是将客户端设置为使用连接到mysql服务器的正确方法。

如果使用PHP连接服务器,请检查是否使用mysql库中的mysqli。我认为只有mysqli库使用新的连接管理方式。