如何将开发阶段的Django Web应用程序连接到现有的AWS MySQL数据库?

时间:2017-05-28 17:41:24

标签: python mysql django amazon-web-services

简短问题 - 如何从我的开发阶段Django Web应用程序连接到现有的Amazon Web Services MySQL数据库?

上下文:

我正在使用Django框架创建一个网页。

我已经成功创建了一个AWS MySQL RDS数据库并导入了我的数据并通过MySQL Workbench成功连接到它。

我现在正处于尝试从我的Django应用程序连接到数据库的位置。我将要求应用程序内的数据库中的只读功能...我不会向数据库写任何新信息。此外,我试图在开发环境中这样做,因为我甚至不接近任何有价值的产品(即,我在我的笔记本电脑本地工作)。

我已将AWS数据库信息添加到我的Django settings.py文件中,并根据我的研究生成必要的模型,我需要使用Django' inspectdb& #39;效用。我试过了,收到的错误是:

django.db.utils.OperationalError:(1045,你"用户访问被拒绝' [我的用户名在这里,实际上显示了我的文字名,而不是任何类型的用户名)由AWS建立]' @'池 - [我的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'

1 个答案:

答案 0 :(得分:0)

除非您DATABASE_ROUTERS设置为使用备用数据库,否则Django中的所有内容都将使用default数据库。在默认情况下删除当前的ENGINE和NAME,并将所有[removed] db信息移动到default

还要确保AWS RDS端口3306对您的FIOS IP地址开放。理想情况下,您可以将AWS中的限制仅限于实际的服务器(无论是在AWS还是其他地方),但是现在您可能需要设置一个广泛的IP范围,以便在开发期间定期更改FIOS IP。