在Amazon AWS上从PHP服务器连接到MySQL服务器
我在Amazon AWS上安装了两台服务器。一台服务器运行PHP,另一台服务器运行MySQL。我可以通过终端和MySQL查询浏览器连接到MySQL数据库 我正在尝试在PHP和MySQL服务器之间建立连接 下面是我正在使用的PHP代码(适用于“localhost”数据库) 这是我的理解,我应该能够路由这一内部AWS流量,但在这一点上,我会采取任何工作,并从那里建立 以下是我所做的:在Amazon AWS上从PHP服务器连接到MySQL服务器,php,mysql,amazon-web-services,connection,internal,Php,Mysql,Amazon Web Services,Connection,Internal,我在Amazon AWS上安装了两台服务器。一台服务器运行PHP,另一台服务器运行MySQL。我可以通过终端和MySQL查询浏览器连接到MySQL数据库 我正在尝试在PHP和MySQL服务器之间建立连接 下面是我正在使用的PHP代码(适用于“localhost”数据库) 这是我的理解,我应该能够路由这一内部AWS流量,但在这一点上,我会采取任何工作,并从那里建立 以下是我所做的: 将PHP服务器的ip添加到MySQL(3306)权限的安全组中 尝试使用MySQL服务器的内部、外部和私有IPs/
- 将PHP服务器的ip添加到MySQL(3306)权限的安全组中
- 尝试使用MySQL服务器的内部、外部和私有IPs/DNS作为$dbhost变量
- 在MySQL服务器上创建了myuser@%(通配符)
ip-10-10-100-100.ec2.内部:3306
最后,我想这就是我所做的一切。我也遇到了同样的问题——原来PHP的MySQL扩展不再包含在PHP5中 “在PHP5(更新的PHP5.0.4)中,存在以下更改。内置:DOM、LibXML、Iconv、SimpleXML、SPL和SQLite。以下内容不再内置:MySQL和重载。”
来源:你能从3306的PHP机器上点击mysql机器吗?尝试此命令:
telnet 3306
。看看它是否有效。当我使用“telnet”时,它会显示“未找到命令”。我尝试了“ping”,但它只是停留在那里,直到超时才会发生任何事情。我在安全组中打开了ICMP,现在我可以从PHP服务器ping MySQL服务器。最好对内部AWS到AWS规则使用安全组。如果您有一个MySQL安全组和一个PHP安全组,MySQL安全组应该在3306接受来自PHP组的入站流量。
$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");