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

Der*_*rek 2 php mysql amazon-ec2 amazon-rds

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

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

对我而言,区域有所不同,这有点奇怪.RDS是美国东部(弗吉尼亚州北部),EC2是美国西部(俄勒冈州).

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

C:\xampp\mysql\bin>mysqldump -u root 'local database' | mysql -- host='Endpoint' --  user='user login' --password='user pwd' ' rds database'
Run Code Online (Sandbox Code Playgroud)

我也在使用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');
Run Code Online (Sandbox Code Playgroud)

单击http://www.realcardio.com上的"演示"按钮时,您可以看到错误

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

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

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

DK

Lus*_*ian 8

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

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