2015-10-17 171 views
0

我有一个运行在我的服务器上的PHP应用程序及其MySQL数据库,数据库包含安全密钥。远程MySQL连接超时

站点A远程连接到应用程序MySQL数据库以获取安全密钥并且没有问题。 但是,站点B返回MySQL连接超时错误。

所以基本上一个外部服务器连接到数据库没有问题,但其他时间了。它是两台服务器上完全相同的脚本,并且两台外部服务器都在cPanel中列出。两台服务器都有60秒的php.ini中设置的mysql连接超时值相同,站点B在大约5秒后返回超时错误。

任何想法可能会造成这种情况?

+0

您是否已根据https://rtcamp.com/tutorials/mysql/remote-access/ – Peter

+0

授予站点B对数据库的访问权限?好吧,因为我没有为站点A执行此操作,并且它工作正常,为什么站点B需要它吗? – Daryl

回答

1

默认情况下,的cPanel不允许远程连接到数据库的保护, 你应该添加两个远程服务器IP在允许远程连接列表,在db网站的cPanel,或允许所有IP的连接(添加%只)

另一件事,如果你在服务器B上有一个CSF(ConfigServer安全&防火墙)可能会阻止连接,那么你需要确认MySQL端口3306允许(您需要为根级别,或要求服务器管理员)。

+0

是的,我已经在cPanel中使用了通配符%。问题是它没有显示错误,如无法连接或错误的信息,只是连接超时,这是相同的错误,如果我将服务器地址更改为一些随机组成的URL或DNS,它几乎就像服务器可以不能连接任何东西。 – Daryl

+0

防火墙阻止端口连接也会导致连接超时,您需要允许该端口或要求服务器管理员这样做。 你可以通过尝试远程连接到服务器B数据库来确认,它也应该让你超时 – Lion4H

0

如果您在服务器B上有Telnet访问,则telnet到MySQL并查看是否可以获得响应。

此外,请检查站点B是否配置为使用与站点A相同的MySQL端口。您可能希望在脚本中明确指定它,以便覆盖已配置的默认值。

Lion4H也提出了一些非常好的信息。很可能是防火墙问题。

0

阻塞端口会导致超时。您可以通过以下命令复制它,并从要连接的服务器中执行:

telnet hostname_or_ip 3306 

查看响应数据。没有反应?阻止。

其次:确保服务器的ip被mysql列入白名单。