php - 通过 PHP 从 GoDaddy 连接到远程 AWS MySQL

标签 php mysql amazon-web-services

我在连接到由 Amazon Web Services 托管的远程 MySQL 服务器时遇到问题。我几乎可以从任何其他计算机连接到此 MySQL 服务器,但由于某种原因,我无法将其拉入托管在 GoDaddy 上的 PHP 中。

这是 PHP 代码:

$cxn = mysql_connect($host,$user,$passwd,$dbname)
         or die("Query died: Cannot connect.");

我已将 MySQL 服务器的主机名添加到 GoDaddy 的 CPANEL > 远程 MySQL 访问主机中。我知道变量是正确的,因为我已经在另一台服务器上对此进行了测试,一切正常。

我现在已经两次与 GoDaddy 通电话,他们所说的只是尝试询问论坛(除了将 MySQL 主机添加到远程访问主机页面之外)。

我已检查 AWS MySQL 的安全组,并确保它对 GoDaddy 的托管 IP 地址开放...

我只是不知道还能做什么!为什么这在 GoDaddy 的服务器上无法正常工作,而在另一台服务器上却工作得很好?

AWS 上的 MySQL v5.6 --> PHP v5.4 --> GoDaddy 上

最佳答案

根据问题和评论中的信息,很明显,GoDaddy 的网络运营团队不允许端口 3306(这是 MySQL 的默认端口)上的传出 TCP 连接请求。

这意味着您无法从 GoDaddy 服务器上运行的程序发起到位于其他地方的 MySQL 服务器的连接。如果这样做,它将停止,直到 TCP 连接超时结束。

对此你能做什么?

  1. 请求他们允许您的传出 3306 流量。 (我怀疑不太可能。他们的商业模式无法承担太多针对每个客户的网络工程工作。)
  2. 尝试让 MySQL 服务器监听其他端口,可能是 8000、8080,或另一个常用的“替代”http 端口。这些可能不会被阻止。然后使用

    mysql_connect("$host:$port",$user,$passwd,$dbname)

连接。

您需要了解如何让 AWS 驻留的 MySQL 服务器监听非标准端口。

关于php - 通过 PHP 从 GoDaddy 连接到远程 AWS MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26898407/

相关文章:

javascript - 凭证的范围应限定在有效区域

php - 如何获得 if 条件下得到的值的总和

php - 平面文件数据库

java - PreparedStatement 可以不考虑 WHERE 子句中的某些条件吗?

amazon-web-services - 如何将使用 AWS Amplify 作为后端的前端部署到生产环境

amazon-web-services - 在 AWS Cloudformation 中创建可公开访问的 RDS 实例

php - 如何从两个表中获取结果? (MySQLi)

php - 通过 shell 执行命令后不返回输出

如果列不为空,mysql连接列

php - 夹具 PHP 算法