2017-05-28 41 views
0

簡短問題 - 如何從我的開發階段Django Web應用程序連接到現有的Amazon Web Services MySQL數據庫?如何將開發階段的Django Web應用程序連接到現有的AWS MySQL數據庫?

上下文:

我正在使用Django框架創建網頁。

我已經成功創建了一個AWS MySQL RDS數據庫,並導入了我的數據並通過MySQL Workbench成功連接了它。

我現在正在嘗試從我的Django應用程序連接到數據庫。我將需要從應用程序內的數據庫的只讀功能...我不會寫任何新的信息到數據庫。此外,我正試圖在開發環境中這樣做,因爲我甚至沒有接近任何有價值的產品(即我在本地從我的筆記本電腦上工作)。

我已經將AWS數據庫信息添加到我的Django settings.py文件中,並基於我的研究,生成必要的模型,我需要使用Django的「inspectdb」實用程序。我試過了,並且收到的錯誤是:

django.db.utils.OperationalError:(1045,u「拒絕訪問用戶」[我的用戶名在這裏,實際上顯示了我的字面名比由AWS]建立任何類型的用戶名的「@」 pool- [我的IP地址在這裏] .nwrknj.fios.verizon.net」

有其他人遇到這個問題,並確定瞭解決方案?

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.sqlite3', 
     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 
    }, 
    '[removed]': { 
      'NAME': '[removed]', 
      'ENGINE': 'django.db.backends.mysql', 
      'USERNAME': '[removed]', 
      'PASSWORD': '[removed]', 
      'HOST': '[removed].us-west-2.rds.amazonaws.com', 
      'PORT': '3306' 
+0

你可以把你的數據庫設置的anoymised版本,所以我們可以檢查? – Withnail

+0

當然,請參見下面的(對不起,不知道如何格式化註釋字段中的設置): 數據庫= { 「默認」:{ 的「發動機」:「django.db.backends.sqlite3」, 「 NAME':os.path.join(BASE_DIR,'db.sqlite3'), }, '[removed]':{ 'NAME':'[removed]', 'ENGINE':'django.db。 backends.mysql', 'USERNAME':'[removed]', 'PASSWORD':'[removed]', 'HOST':'[removed] .us-west-2.rds.amazonaws.com', 'PORT':'3306' – abiero

+0

更新 - 我已將DB設置添加到原始問題中,而不是發表在評論中。謝謝! – abiero

回答

0

除非你有DATABASE_ROUTERS設置爲使用備用數據庫,則Django中的所有內容都將使用default數據庫。在默認情況下襬脫當前的ENGINE和NAME,並將所有[removed]分貝信息移入default

還要確保AWS RDS端口3306對您的FIOS IP地址開放。理想情況下,您只能在AWS中將其限制爲僅限實際服務器(無論是在AWS還是其他地方),但現在您可能必須設置廣泛的IP範圍,以便您的FIOS IP在開發期間定期更改。

+0

謝謝,我會在路由器上閱讀,並給予一個鏡頭。 – abiero

+0

恰恰相反。如果您的Django應用程序中實際存在MULTIPLE數據庫,則只需要路由器。如果你只有一個數據庫,就好像是這樣,只要把憑證移到'default',你就應該全部設置好了。 – manassehkatz

+0

原來我使用錯誤的語法來指定數據庫設置。 我將「USERNAME」更改爲「USER」,一切都像魅力一樣。 – abiero

相關問題