Connecting From PHP Server to MySQL Server on Amazon AWS

こ雲淡風輕ζ 提交于 2019-12-13 00:41:00

问题


I have two servers setup on Amazon AWS. One server is running PHP and the other has MySQL. I can connect to the MySQL database through my terminal and MySQL Query Browser.

I am trying to get a connection between the PHP and MySQL servers.

Here is the PHP Code that I am using (works for "localhost" databases)

$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");

It is my understanding that I should be able to route this an internal AWS traffic, but at this point I will take anything that works and build from there.

Here is what I have done:

  • Added the ip of the PHP server to the Security Group for MySQL(3306) permissions

  • Tried to use the internal, external, and private IPs/DNSs of the MySQL Server as the $dbhost variable

  • Created myuser@% (wildcard) on thy MySQL server

Any ideas or tips would be much appreciated.


回答1:


I had the same issue - turns out MySQL extension for PHP is NO longer included in PHP5!

"In PHP 5 (updated PHP 5.0.4), the following changes exist. Built in: DOM, LibXML, Iconv, SimpleXML, SPL and SQLite. And the following are no longer built in: MySQL and Overload."

Source: http://php.net/manual/en/install.windows.extensions.php




回答2:


I've got this working.

I think the big trick was to add this rule to the Security Group:

Type: MySQL

Source: 10.0.0.0/8

My understanding is that 10.0.0.0/8 covers all internal amazon IPs. I think you could tighten this up, but it is possible for the internal IP of your servers to change, so that would need to be managed.

Then in my PHP script I used the Private DNS of my MySQL Server. It should look something like this: ip-10-10-100-100.ec2.internal:3306

In the end, I think that is everything that I did.



来源:https://stackoverflow.com/questions/12029126/connecting-from-php-server-to-mysql-server-on-amazon-aws

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!