部署到aws时无法连接mysql本地服务器

时间:2016-12-15 23:27:04

标签: mysql django amazon-web-services

我正在尝试将django rest app部署到AWS Elastic Beanstalk。我按照this教程,在settings.py中配置了DATABASES,如下面的

if 'RDS_DB_NAME' in os.environ:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': os.environ['RDS_DB_NAME'],
            'USER': os.environ['RDS_USERNAME'],
            'PASSWORD': os.environ['RDS_PASSWORD'],
            'HOST': os.environ['RDS_HOSTNAME'],
            'PORT': os.environ['RDS_PORT'],
        }
    }
else:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'DB_NAME',
            'USER': 'USER_NAME',
            'PASSWORD': 'password',
            'HOST': 'localhost',
            'PORT': '3306',
        }
    }

我将以下代码添加到.ebextensions目录,

option_settings:
  "aws:elasticbeanstalk:application:environment":
    DJANGO_SETTINGS_MODULE: "myApp.settings"
    "PYTHONPATH": "./src"
    "ALLOWED_HOSTS": ".elasticbeanstalk.com"
  "aws:elasticbeanstalk:container:python":
    WSGIPath: [WSGI_PATH]
    NumProcesses: 3
    NumThreads: 20
  "aws:elasticbeanstalk:container:python:staticfiles":
    "/static/": "www/static/"

container_commands:
  01_migrate:
    command: "source /opt/python/run/venv/bin/activate && python campusBackend/manage.py migrate --noinput"
    leader_only: true

但是,当我尝试部署时,它会给我错误

  

django.db.utils.OperationalError:(2002,"无法连接到本地MySQL   服务器通过socket' /var/lib/mysql/mysql.sock' (2)&#34)。   .ebextensions / 02_python.config中的container_command 01_migrate失败。

我真的很抱怨这一点,我不知道如何解决这个问题。

编辑:我正在使用以下RDS的入站/出站规则

enter image description here

0 个答案:

没有答案