【问题标题】:EC2 connect RDS using PHPEC2 使用 PHP 连接 RDS
【发布时间】:2012-05-31 09:56:21
【问题描述】:

我知道有人问过这个问题,但没有一个线程有适合我的解决方案
我正在成功从 XAMPP(本地)连接到 RDS
我也与 mySql 工作台连接良好
从 EC2 连接时出现问题

出现错误:Fatal error: Call to undefined function mysql_connect()

这就是我的 PHP 的样子:

define("HOST", "mydatabase-starter.Pzw9yv81CmMJ.us-east-1.rds.amazonaws.com:3306");
define("DBUSER", "mydatabaseUser");
define("PASS", "**********");
define("DB", "mydatabase");

die("Going to connect now, wish me luck!");
$conn = mysql_connect(HOST, DBUSER, PASS) or die();
$db = mysql_select_db(DB) or die();


另外,RDS 的安全性是这样的!
EC2 是一个灯栈,全新安装 apache 和 php,没有 mysql。
我究竟做错了什么?我还缺少其他服务吗?

更新:通过 SSH,我可以通过以下方式连接到 RDS:
sudo mysql -h mydatabase-starter.Pzw9yv81CmMJ.us-east-1.rds.amazonaws.com -P 3306 -u mydatabaseUser -p

* 这将输出“现在开始连接,祝我好运!”来自 PHP 文件
但看起来连接在 EC2 上时没有发生

【问题讨论】:

  • 在连接失败后,您是否从mysql_error() 获得任何有用的信息?
  • 我没有得到输出,好像连接在 AWS 上时甚至都没有发生
  • 嗯。您的 EC2 实例上的端口 3306 是否允许出站流量?
  • 3306 > 出局了?我在哪里可以检查这个?
  • 最快的方法可能是Amazon EC2 online management panel。在页面右上角登录,点击进入 EC2,查看您的实例的安全设置。

标签: php amazon-ec2 amazon-web-services amazon-rds


【解决方案1】:

这意味着您的 EC2 实例上没有加载 MySQL 扩展。根据您的发行版,您必须安装它。

在 Debian / Ubuntu 上,您应该像这样运行命令:

$ sudo apt-get install php5-mysql

【讨论】:

  • 但我的 EC2 实例正在连接到数据库实例 RDS。我还需要在 EC2 上安装 mysql 吗?
  • 不,你不需要安装 MySQL 并且 php5-mysql 不是服务器,而是 php5 的 MySQL 模块,你需要它来与 RDS 交互。
  • 试过 'sudo yum install php5-mysql' 但得到了这个 No package php5-mysql available.
  • 取出5,sudo yum install php-mysql
【解决方案2】:

你需要 php-mysql。我猜你正在使用 Amazon Linux AMI,所以试试

sudo yum install php-mysql

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 2016-04-23
    • 2021-07-29
    • 2020-08-07
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    相关资源
    最近更新 更多