1

我在 Amazon AWS 上设置了两台服务器。一台服务器运行 PHP,另一台运行 MySQL。我可以通过我的终端和 MySQL 查询浏览器连接到 MySQL 数据库。

我正在尝试在 PHP 和 MySQL 服务器之间建立连接。

这是我正在使用的 PHP 代码(适用于“localhost”数据库)

$dbbase = 'mydb';               
$dbuser = 'myuser';         // Your MySQL username
$dbpass = 'mypassword';     // ...and password
$dbhost = 'localhost:3306';  // Internal IP for MYSQL Server

// connect to database
$dblink = mysql_connect($dbhost, $dbuser, $dbpass) 
    or die ("System Down");

mysql_select_db($dbbase, $dblink) 
    or die ("Database Down");

据我了解,我应该能够路由这个内部 AWS 流量,但此时我将采用任何可行的方法并从那里构建。

这是我所做的:

  • 将 PHP 服务器的 ip 添加到 MySQL(3306) 权限的安全组

  • 尝试使用 MySQL 服务器的内部、外部和私有 IP/DNS 作为 $dbhost 变量

  • 在你的 MySQL 服务器上创建了 myuser@%(通配符)

任何想法或提示将不胜感激。

4

2 回答 2

2

我遇到了同样的问题——原来 PHP 的 MySQL 扩展不再包含在 PHP5 中!

“在 PHP 5(更新的 PHP 5.0.4)中,存在以下更改。内置:DOM、LibXML、Iconv、SimpleXML、SPL 和 SQLite。以下不再内置:MySQL 和 Overload。”

来源: http: //php.net/manual/en/install.windows.extensions.php

于 2013-04-07T03:23:53.500 回答
1

我有这个工作。

我认为最大的技巧是将此规则添加到安全组:

类型:MySQL

来源:10.0.0.0/8

我的理解是 10.0.0.0/8 涵盖了所有内部亚马逊 IP。我认为您可以加强这一点,但您的服务器的内部 IP 可能会发生变化,因此需要对其进行管理。

然后在我的 PHP 脚本中,我使用了我的 MySQL 服务器的私有 DNS。它应该看起来像这样:ip-10-10-100-100.ec2.internal:3306

最后,我认为这就是我所做的一切。

于 2012-08-19T23:26:28.483 回答