我在连接到由 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 连接超时结束。
对此你能做什么?
- 请求他们允许您的传出 3306 流量。 (我怀疑不太可能。他们的商业模式无法承担太多针对每个客户的网络工程工作。)
尝试让 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/