2016-08-20 70 views
1

我有兩個amazon ec2實例。一個我用作網絡服務器,另一個有mysql數據庫。我有以下的PHP腳本,我從Web服務器上運行。我似乎無法連接到我的數據庫。當我用$ host = localhost在mysql服務器上運行php腳本時,它可以工作。我如何訪問mysql服務器?在Ec2上遠程訪問mysql

<?php 


$host="ipaddress";    // Host name 
$username="root"; // Mysql username 
$password="mypassword";   // Mysql password 
$db_name="myDB";    // Database name 
$port=3306; 



// Create connection 
$conn = new mysqli($host, $username, $password, $db_name,$port); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
}else 
{ 

     echo "Connected"; 
} 


?> 
+1

猜測你在MySQL機器上沒有安全組,允許網絡服務器機器訪問它。你有一個安全組,允許你的服務器端口使用3306端口嗎?小心不要打開該端口(0.0.0.0)。 – stdunbar

+0

此外,RedHat和IIRC,Windows EC2實例在機器上啓用防火牆(RedHat上的iptables)。因此,您可能還需要配置或禁用它。亞馬遜形象不*啓用iptables – Felix

回答

1
  1. 讓用戶/主機組合作爲mysql.user合法用戶

    選擇用戶,從mysql.user主機;

  2. 有AWS EC2安全組開(AWS的防火牆)

這裏有三種選擇:我的IP地址,自定義,或任何地方對IP地址CIDR

  • 將mysql服務器配置爲允許遠程連接。
  • 這是綁定地址和跳過網絡設置。如果需要,請參閱nixcraft文檔以進行少量更改。

    +0

    @德魯 - 我能夠連接到MySQL Db使用Gui工具「HeidiSQL」使用公共IP。但是,當我嘗試使用我的PHP代碼它不起作用/ – amanda45

    +0

    阿曼達,我可以給你發送一個mysqli存根嘗試? – Drew

    +0

    我在drewpierce747 gmail – Drew