php网站没有连接到amazon rds上的mysql

时间:2012-08-02 00:52:25

标签: php mysql amazon-ec2 amazon-rds

首先,在这里设置: AWS EC2实例已启动并正在运行。端口22,80和3306已添加到安全组

RDS数据库实例已启动并正在运行。我的本地IP已添加为CIDR / IP连接。 AWS账户ID已添加为EC2安全组连接。

对我而言,区域有所不同,这有点奇怪。 RDS是US East(N。Virginia),EC2是US West(Oregon)。

我的本​​地数据库已成功导入RDS。我使用了这样的命令行:

C:\xampp\mysql\bin>mysqldump -u root 'local database' | mysql -- host='Endpoint' --  user='user login' --password='user pwd' ' rds database'

我也在使用MySQL Workbench在rds上连接和查询数据库。 我从未将我的备份sql文件(' localhostdatabase.sql')导入到rds。

以下是我的联系方式: (两个选项都不起作用。)

// $serverConnect = mysql_connect('rds endpoint','rds admin','rds pwd');
// $serverConnect = mysql_connect('EC2 elastic ip','rds admin', 'rds pwd');

点击“演示”后,您会看到错误。 http://www.realcardio.com

按钮

我是否需要配置php文件?如果是这样,我该怎么做? 我的网络文件存储在/ var / www / html中。但我不知道php配置文件的位置。

我使用WinSCP连接到EC2。如果我需要在此处修改文件,如何连接到RDS?

我会排除故障并与您分享任何内容。只是想让它运行起来。 我感谢任何帮助!

DK

1 个答案:

答案 0 :(得分:8)

好的,这里有很多问题,所以我会尝试通过所有这些问题:

  1. 除非您喜欢性能低下,否则您的RDS实例和EC2实例应位于同一区域。易于更改,但在发布之前就这样做了。
  2. 除了数据库的凭据和RDS实例地址之外,您不需要在PHP文件中配置任何内容。您应该使用列出的第一个选项。
  3. 您无法建立连接的原因可能是您的安全组。双重和三重检查您的EC2安全组是否已“允许”添加到您的RDS安全组。请记住,每个安全组都不同。如果在验证这些设置后仍然不起作用,则直接将EC2实例的IP地址添加到RDS安全组。
  4. 您未提出的问题:关闭您网站上的display_errors。它会公开您不希望向用户公开的信息。另外,不要使用“mysql_ *”函数。他们已经开始了弃用过程,有比你有毛孔更多的漏洞,也错过了许多新的MySQL功能。请改用PDO或MySQLi。