【问题标题】:Remote MySQL connection timing out远程 MySQL 连接超时
【发布时间】:2015-10-17 15:45:48
【问题描述】:

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

站点 A 远程连接到应用程序 MySQL 数据库以获取安全密钥,并且可以正常工作。 但是站点 B 返回 MySQL 连接超时错误。

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

知道是什么原因造成的吗?

【问题讨论】:

标签: php mysql


【解决方案1】:

默认情况下,cPanel 不允许远程连接到 db 以进行保护, 您应该在允许的远程连接列表、数据库网站 cPanel 中添加两个远程服务器 IP,或者允许所有 IP 的连接(仅添加 %

如果您在服务器 B 上有 CSF(ConfigServer 安全和防火墙),另一件事可能会阻止连接,那么您需要确认 mysql 端口 3306 是允许的(您需要 root 级别,或询问服务器管理员)。

【讨论】:

  • 是的,我已经在 cPanel 中使用通配符 %。问题是它不会显示无法连接或错误信息之类的错误,只是连接超时,如果我将服务器地址更改为一些随机组成的 URL 或 DNS,这是同样的错误,这几乎就像服务器可以'不连接到任何东西。
  • 防火墙阻止端口连接也会导致连接超时,您需要允许该端口或请求服务器管理员这样做。您可以通过尝试远程连接到服务器 B db 来确认,它也应该给您超时
【解决方案2】:

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

telnet hostname_or_ip 3306

查看响应数据。没有反应?已屏蔽。

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

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多