【发布时间】:2012-08-19 19:00:09
【问题描述】:
我在 Amazon AWS 上设置了两台服务器。一台服务器运行 PHP,另一台运行 MySQL。我可以通过终端和 MySQL Query Browser 连接到 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@%(通配符)
任何想法或提示将不胜感激。
【问题讨论】:
-
3306上的PHP机器能打到mysql机器吗?试试这个命令:
telnet <mysql_host_external_IP> 3306。看看它是否有效。 -
当我执行“远程登录”时,它显示“找不到命令”。我尝试了“ping”,但它只是坐在那里,直到超时什么都没有发生。
-
我在安全组中打开了 ICMP,现在我可以从 PHP 服务器 ping MySQL 服务器了。
标签: php mysql amazon-web-services connection internal