我有一个 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地址连接回本地数据库。...
答案 0 :(得分:0)
MYSQL从版本4.1开始更改了密码存储方法。如果您的客户端尝试以旧方式连接,并且服务器以新方式存储了密码,那么您将收到该错误消息。为了解决这个问题,您有2种选择:
如果您想更改密码以使用旧的哈希类型,请使用以下命令:
mysql> SET PASSWORD FOR
-> 'some_user'@'some_host' = OLD_PASSWORD('new_password');
此后,您必须将old_passwords
系统变量设置为1来启动mysql服务器
另一方面,我认为解决此问题的最佳方法是将客户端设置为使用连接到mysql服务器的正确方法。
如果使用PHP连接服务器,请检查是否使用mysql
库中的mysqli
。我认为只有mysqli
库使用新的连接管理方式。