2013-03-29 26 views
0

我有一個運行在EC2實例上的Django應用程序,並嘗試連接到RDS mysql數據庫實例。使用RDS的EC2上的Django

我已經創建了RDS數據庫並向RDS安全組添加了一個允許EC2安全組的規則。

在我的settings.py文件中,我添加了HOST作爲RDS EndPoint和端口爲3306 - 以及數據庫名稱,用戶名和密碼。

我已經在EC2實例上安裝了libmysqlclient-dev,MySQL-python和mysql-client。

當我運行./manage.py syncdb,我得到這個錯誤:

super(Connection, self).__init__(*args, **kwargs2) 
_mysql_exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")* 

它看起來像它試圖連接到本地MySQL服務器(這當然是不存在的,因爲我希望它連接到一個RDS)。

我怎麼能通過這個?

+1

在EC2實例上,在shell中,可以使用mysql命令行連接到mysql嗎? – krak3n

+1

我還沒有使用過RDS,但是您是否必須爲其分配一個像ec2這樣的安全組併爲端口3306啓用訪問端口? – dm03514

+0

您是否將RDS設置添加到'默認'數據庫設置? –

回答

0

您不會在默認情況下設置rds,或者您加載錯誤的設置文件。 Python mysql試圖通過套接字連接本地主機基地(這是當HOST字段爲空)。您可以嘗試在設置中打印DATABASE ['default'] ['HOST'],或者使用django shell在設置中檢查主機。