2012-03-06 170 views
4

我正嘗試將我的RDS實例與我的PHP連接文件連接起來。使用PHP連接到Amazon RDS

這是我在我的文件:

define('DB_SERVER', 'localhost'); 
define('DB_USERNAME', 'User Name'); 
define('DB_PASSWORD', 'Password'); 
define('DB_DATABASE', 'DATABASE'); 

$connection = mysql_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD) or die(mysql_error()); 
$database = mysql_select_db(DB_DATABASE) or die(mysql_error()); 

我取代本地主機與我的終點(RDS的東西)的URL,用戶名和密碼與我的RDS實例的用戶,並通過和數據庫名稱一個我已經在創建實例時設置。但它似乎並不奏效。

還有什麼我必須做的,我不知道或應該工作嗎?

+0

您確定它是MySQL數據庫嗎?因爲Amazon RDS支持MySQL和Oracle數據庫。 – 2012-03-06 12:30:55

+0

,我想我們需要更多的信息來幫助你。 – 2012-03-06 12:32:28

+0

您可能想要打開3306端口來接受到RDS的傳入連接。 – cyberrspiritt 2016-10-16 15:39:58

回答

8

一些想法:

  • 嘗試使用實例的實際IP,那麼它應該工作。
  • 您是否授權訪問您的數據庫實例?
  • 你可能想看看Get Started with Amazon RDS正確設置你的RDS實例
12

RDS實例沒有一個靜態IP地址連接到他們,你總是使用的終端主機。例如:

database1.jlsdfjhgsdf.us-east-1.rds.amazonaws.com

如果要連接到實例比根數據庫帳戶其他用戶名,您將需要授予用戶權限。

檢查安全組設置。如果您要從Amazon上的另一個EC2實例連接,則需要附加該安全組。如果您嘗試從外部AWS連接,則需要將您訪問的IP地址列入白名單。

+2

[RDS&PHP](http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_PHP.rds.html) – Jon 2013-05-15 20:18:10

1

我最近在這方面遇到了很多麻煩,但能夠解決它。我確保我的安全團隊(針對RDS和EC2)互相允許。我能夠從終端運行我的腳本並從終端連接到我的數據庫,但是我無法通過瀏覽器使腳本運行/連接到MySQL。事實證明,我沒有安裝mysql服務器 - 一旦我安裝並重新啓動httpd和mysqld它就像一個魅力。

本文是什麼導致我安裝mysql服務器和服務啓動/重新啓動。希望能幫助到你! - http://www.rndmr.com/amazon-aws-ec2-easy-web-serverset-up-guide-with-a-mac-and-coda-2-256/

0

我正在嘗試使用node-mysql連接到我的數據庫實例。我發現我是RDS爲我提供的端點進行了DNS查找。隨後,將網址更改爲該網址。直到那時我才能通過命令行連接到mysql。在查找後將其更改爲所得端點時,node-mysql終於能夠連接。

4

我在嘗試將使用PHP的EC2 Apache服務器連接到RDS MySQL實例時遇到了類似的問題。 奇怪的是,我可以通過CLI建立連接 - 一旦在mysql運行狀態將告訴你哪個用戶登錄,加上端口,服務器名稱等。 原來一些AMI圖像有SELinux的強制執行 - 這意味着Apache服務器不能發送網絡請求由這位先生(http://www.filonov.com/2009/08/07/sqlstatehy000-2003-cant-connect-to-mysql-server-on-xxx-xxx-xxx-xxx-13/

其他景點指出:

  • 確保入站端口爲您的RDS數據庫設置
  • 在MySQL確保主機設置爲「%」,而不是爲localhost
  • 始終使用端點字符串連接的RDS IP改變
1

Click here on the Menu (orange).

只接受所有傳入連接。

+0

這是一個巨大的安全風險。遠程連接應該鎖定到白名單IP地址。 – Steven 2017-05-19 13:29:54