【问题标题】:php site not connecting to mysql on amazon rdsphp站点未连接到亚马逊rds上的mysql
【发布时间】:2012-07-30 23:03:13
【问题描述】:

首先,设置如下: 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'

我也在使用 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?

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

丹麦

【问题讨论】:

  • 除非您有一个 非常 充分的理由,而大多数人没有,否则您最好使用 mysqli 或 PDO 而不是永久危险mysql系列函数。

标签: php mysql amazon-ec2 amazon-rds


【解决方案1】:

好的,这里有很多问题,所以我会尝试解决所有问题:

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

【讨论】:

  • 感谢您的深度回复。我肯定会一遍又一遍地检查这些项目。也感谢您的额外建议。我会在开始连接后立即修改我的代码。
  • 我正在连接!我的应用程序不像在我的本地主机上那样工作,但我仍然连接。我一定会按照您和 tadman 的建议研究和使用 PDO 或 mysqli。再次感谢!
  • 嗨@Derek,我面临同样的问题。我知道它已经这么多年了,但是你能和我分享一下你到底做了什么来修复它吗?谢谢
猜你喜欢
  • 2019-09-08
  • 2016-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-15
  • 2017-02-25
相关资源
最近更新 更多