访问被拒绝远程MySQL连接请求

时间:2015-07-21 13:31:31

标签: mysql

我在远程服务器上设置了mysql数据库(v5.5.41),并且应用程序从另一台服务器连接到数据库以运行某些查询。它工作正常,但最近我的数据库服务器获得了一个新的IP地址。我的应用程序无法再连接到数据库,连接超时。

应用程序使用的是服务器的DNS名称,而不是硬编码的IP,所以不应该有问题。无论如何,如果我从应用程序服务器运行它:

mysql -u app_user -h mydb.myhost.com -p

然后我得到

ERROR 1045 (28000): Access denied for user 'app_user'@'xxx.xxx.xxx.xxx' (using password: YES) 

如果找不到新的IP,那么该命令可能只是挂起和超时,所以它似乎是一个身份验证问题。 我的密码肯定是正确的,但应用程序使用的密码与应用程序成功连接时的密码相同,因此不存在错误输入的问题。

我尝试从数据库中删除用户app_user并重新创建,就像我在开始时一样:

CREATE USER 'app_user'@'xxx.xxx.xxx.xxx' IDENTIFIED BY 'mypassword';
GRANT SELECT ON mydb.* TO 'app_user'@'xxx.xxx.xxx.xxx' IDENTIFIED BY 'mypassword' REQUIRE SSL;
FLUSH PRIVILEGES;

我不确定数据库服务器IP更改是否只是巧合,可能还有其他一些问题。

app_userselect user, host from mysql.user的条目显示的IP地址与上面Access Denied消息中的IP地址相同。对于它的价值,我尝试将数据库用户主机更改为*并获得Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server

这可能与此用户的连接尝试需要SSL有关吗?

1 个答案:

答案 0 :(得分:0)

问题与我的用户权限中的REQUIRE SSL有关。没有它,我可以连接得很好。通过将我的client-cert.pem和client-key.pem文件放在应用程序服务器上,通过添加:{/ p>更新my.cnf,我的工作再次

ssl-cert = /path/to/client-cert.pem
ssl-key  = /path/to/client-key.pem 

...在[client]部分下,重新启动了mysql服务器。

但是,我仍然不明白为什么我在之前能够成功连接,而我没有做过这些事情。