2012-06-14 97 views
2

最近几天我遇到了一个奇怪的问题,无法在RDS上连接到mysql,而手动连接没问题。PHP无法连接到RDS上的MySQL

因此,我有几个PHP脚本坐在我们的服务器上,这个脚本位于EC2上,并且这些脚本被客户端调用以与坐在RDS上的mysql服务器进行通信。这些脚本的设置使得如果发生连接错误,他们会向我发送电子邮件通知。

因此,最近几天我收到了来自我的脚本的数千个错误电子邮件,最初几天的错误很简单,说服务器主机无法识别,但我确信地址是正确的。而现在,这些错误几乎都是说“Host XXX由于连接错误而被阻止,使用mysqladmin flush-hosts解锁”。如果我刷新主机,一段时间后错误会回复给我。

最让我困惑的是,我无法重现问题!我尝试通过命令行和通过测试php脚本从我的EC2服务器连接到RDS服务器......他们都工作!如果我手动调用向我发送错误电子邮件的脚本,它们也可以工作!看看RDS显示器,所有的数据看起来都很正常,CPU跳动了50%左右,还有很多硬盘空间。

所以我现在完全困惑......任何人都可以提供一些关于如何解决这个问题的见解?我甚至不知道现在在哪里看...

+0

你打电话给亚马逊吗? –

+0

您是否阅读过文档?您是否使用相同的用户/密码凭据测试连接? http://dev.mysql.com/doc/refman/5.6/en/blocked-host.html –

+0

@Paul不,我还没有叫亚马逊,我张贴在他们的论坛上,但他们并没有真的看着它。 –

回答

0

你需要检查你的连接到mysql服务器并检查错误。在此之前,您可以通过cron“flush hosts”来临时解决问题。请注意,这应该只用作临时修复。

+0

感谢您的答案保罗,经过这么长时间后,问题消失了,只需通过扩大RDS。我认为这是亚马逊方面的一个缺陷,没有真正的文件记录,但其原因是神秘的。无论如何,我会接受你的答案来解决这个问题。 –