在亚马逊AWS上从PHP服务器连接到MySQL服务器
我在Amazon AWS上设置了两台服务器。一台服务器运行PHP,另一台服务器运行MySQL。我可以通过我的终端和MySQL查询浏览器连接到MySQL数据库。在亚马逊AWS上从PHP服务器连接到MySQL服务器
我想获得PHP和MySQL服务器之间的连接。
这里是我使用(对于“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代码,但在这一点上我将采取任何可行的工作,并从那里建立。
这里是我做了什么:
添加了PHP服务器到安全组对MySQL的IP(3306)权限
尝试使用内部,外部和私人MySQL服务器的你的MySQL服务器上的IP/DNSS为$ DBHOST变量
创建为myuser @%(通配符)
任何想法或提示将不胜感激。
我有这个工作。
我认为最大的诀窍是添加此规则到安全组:
类型:MySQL
来源:10.0.0.0/8
我的理解是,10.0 .0.0/8涵盖所有内部亚马逊IP。我认为你可以加强这一点,但服务器的内部IP可能会发生变化,所以需要进行管理。
然后在我的PHP脚本中,我使用了我的MySQL服务器的专用DNS。它应该看起来像这样:ip-10-10-100-100.ec2.internal:3306
最后,我认为这就是我所做的一切。
最好将安全组用于AWS到AWS的内部规则。如果您有MySQL安全组和PHP安全组,则MySQL安全组应接受来自3306上PHP组的入站流量。 – ceejayoz 2012-08-20 01:12:52
我有同样的问题 - 原来MySQL的PHP扩展不再包含在PHP5中!内置:DOM,LibXML,Iconv,SimpleXML,SPL和SQLite,以下内容不再内置:MySQL和Overload。“在PHP 5(更新后的PHP 5.0.4)中,存在以下变化。
您能够从PHP机打mysql的机器上3306?试试这个命令:'telnet 3306'。看看它是否有效。 –
Christopher
2012-08-19 19:47:11
当我做'远程登录'它说:“找不到命令”。我尝试过'平',但它只是坐在那里,直到它超时才会发生。 – Chris 2012-08-19 21:18:23
我在安全组中打开了ICMP,现在我可以从PHP服务器ping MySQL服务器。 – Chris 2012-08-19 23:09:25