【发布时间】:2015-12-28 08:56:11
【问题描述】:
我创建了一个网站,目前托管在 Netfirms 上。
以下是我用来连接我的亚马逊网络服务数据库的代码:
<?php
$connect_error = 'Sorry, we\'re expericing connection problems.';
mysql_connect('xxxxxx.xxxxxxxxxx.us-west-2.rds.amazonaws.com','myusername','mypassword') or die($connect_error);
mysql_select_db('invest') or die($connect_error);
?>
但是,我收到了这个错误:
警告:mysql_connect():无法连接到 MySQL 服务器 'xxxxxx.xxxxxxxx.us-west-2.rds.amazonaws.com' (111) 在 /hermes/bosnaweb03b/b2442/nf.liangbros/triumph/core/database/connect.php 在第 6 行
我能做些什么来解决这个问题? AWS 是否有问题,或者我可以在 netfirms 和/或 AWS 上设置什么?我制作了开发网站并在我的本地主机上使用 easyPHP 对其进行了测试,一切正常(成功连接到亚马逊网络服务),但是在将我的所有文件上传到我的 netfirms 主机后,它无法连接到 AWS 数据库。我需要这个网站在 12 月底之前启动并运行,请帮助!谢谢!
我尝试将我的 AWS 数据库上的安全组更改为以下内容: 网络公司 (sg-ce2d23aa) 对于这个安全组,我设置了以下内容:
以下是我在 AWS 上的数据库的快照: AWS database
【问题讨论】:
-
您的网络托管服务器上是否有任何出站防火墙规则会阻止 3306 上的连接?此外,您应该使用 mysqli 或 pdo 而不是 mysql。 Mysql 被认为已弃用,并已在 PHP 7 中删除。
-
我刚才打电话给他们,他们说没有设置出站防火墙规则。是的,在我完成这项工作后,我会将其更改为 PDO。使用mysql或PDO不会影响连接吧?
-
不,不应该。您可以在托管服务器上使用 mysql 工具吗?如果是这样,您可以使用
mysql -h hostname -u username -p进行连接吗?此外,连接到托管在另一个数据中心的数据库也不理想。每个查询的延迟都等于数据中心之间的延迟。如果您进行大量查询,这可能会显着增加。 -
netfirms 上没有 mysql 工具(netfirms 是一个非常便宜的主机,没有太多功能),是的,我明白这一点,但这只是一个测试链接,所以我可以向我的客户展示该网站在我将文件发布到他们的服务器之前。也许我会购买另一台主机和一个测试域并尝试一下?你有什么建议吗?
-
如果您有一个 aws 帐户,您可以快速设置一个 t2.nano 或 t2.micro 实例,只要您需要做的就是测试它。在设置站点之前。但在安装完所有包后,为您使用的堆栈创建一个 AMI,以便您以后可以更快地设置其他包。
标签: php mysql amazon-web-services