[英]Access denied to remote MySQL connection request
我在远程服务器上安装了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;
我不确定DB服务器IP更改是否只是一个巧合,也许还有其他问题。
select user, host from mysql.user
中的select user, host from mysql.user
app_user
条目显示的IP地址与上面的Access Denied
消息相同。 对于它的价值,我尝试将数据库用户主机更改为*
并且Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server
。
这可能与该用户的连接尝试所需的SSL有关吗?
问题与我的用户权限中的REQUIRE SSL有关。 没有它,我就可以正常连接。 通过将我的client-cert.pem和client-key.pem文件放在应用服务器上,并通过添加以下内容更新了my.cnf
,我再次使工作正常:
ssl-cert = /path/to/client-cert.pem
ssl-key = /path/to/client-key.pem
...在[client]
部分下,并重新启动了mysql服务器。
但是,我仍然不明白为什么我在没有做任何这些事情之前就能成功连接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.