2014-03-12 135 views
0

努力通過運行在RDS實例上的python連接到數據庫。使用Python連接到EC2實例的RDS

我在教程環顧四周,我已經試過這件作品從亞馬遜

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'mydb', 
     'USER': 'sa', 
     'PASSWORD': 'mypwd', 
     'HOST': 'mydbinstance.abcdefghijkl.us-east-1.rds.amazonaws.com', 
     'PORT': '3306', 
    } 
} 

很明顯,我在我自己的細節已經取代,但我不知道從哪裏裏去。它似乎也使用了一種叫做Beanstalk的東西,除非在所有AWS實例上自動存在,否則我沒有。我想要做的是寫一些細節到一張桌子。有沒有教程或任何人可以給我的建議?

+0

這看起來像是django項目的'settings.py'文件。你有沒有嘗試過運行'python manage.py syncdb'來創建數據庫表?一旦你這樣做了,你可以使用'python manage.py runserver'運行本地開發服務器。 –

+0

我沒有運行django,所以實際上我只是將它粘貼到我正在運行的'.py'文件中。有沒有連接方式,而不使用django? – Killian

+1

在這種情況下,您正在尋找python的'mysqldb'類。查看[this](http://mysql-python.sourceforge.net/MySQLdb.html#some-mysql-examples)和[this](http://dev.mysql.com/doc/connector-python/en /connector-python-example-connecting.html) –

回答

0

如果要訪問原始python腳本中的數據,必須使用合適的mysql連接器類用於python,只是將數據庫細節raw傳遞到腳本中將無濟於事。

那麼,檢查出MySQLdbmysql.connector

此外,請確保RDS實例可從EC2實例訪問,並且沒有導致此問題的權限/訪問差異。

mysql -usa -p -hmydbinstance.abcdefghijkl.us-east-1.rds.amazonaws.com mydb 
#*sa* is the user in *-usa* 
+0

謝謝,爲此。我正在取得進展,但我的連接使用dev.mysql.com中的連接代碼超時。我已經嘗試允許我的安全組中的所有連接器,並且我已經仔細檢查了所有連接詳細信息。 – Killian

+0

你能連接到RDS實例嗎?還是隻是蟒蛇片讓你感到困擾? –

+0

不,它看起來不像'errno = 2003,values =(self.get_address(),_strioerror(err))) mysql.connector.errors.InterfaceError:2003:無法連接到''(110連接超時)' – Killian