2017-02-14 4 views
1

Я пытаюсь подключиться к серверу Django AWS Aurora (RDS Aurora 5.6.10a), но я получаюДоступ запрещен при подключении к Джанго RDS через SSL

django.db.utils.OperationalError: (1045, "Access denied for user 'admin'@'xx.xx.xx.xx' (using password: YES) 

В Django settings.py, я уже использовали следующие параметры

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': MYSQL_DATABASE, 
     'USER': MYSQL_USER, 
     'PASSWORD': MYSQL_PASSWORD, 
     'HOST': MYSQL_SERVER, 
     'PORT': '3306', 
     'OPTIONS': { 
      'ssl': { 
       'ca': '/Users/mac-user/workspace/project/settings/rds-combined-ca-bundle.pem', 
      } 
     } 
    } 
} 

Я также смотрел на подобные вопросы, как this но не работало

Я также попытался подключиться с помощью mysql-connector-pythonи 10 в качестве движка базы данных, и заверил, что я устанавливаю правильную конфигурацию (настройка OPTIONS «s ssl_ca и ssl_verify_cert), но я также получил подобную ошибку:

mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'admin'@'xx.xx.xx.xx' (using password: YES) 

Я пытался подключиться к базе данных используя PHP и командную строку, и он работал нормально:

mysql -h '<host>' -u '<username>' -p'<password>' --ssl-ca='<SSL_certificate_absolute_path>' 

Не хватает конфигурации Django?

ответ

0

У меня нет прямого ответа на вашу проблему, но, судя по всему, Aurora не реагирует осмысленно (или правильно?), Когда клиент MySQL не поддерживает ssl (например, командную строку MySQL и ваше PHP-решение).

Таким образом, мой совет заключается в том, чтобы каким-то образом заставить клиента MySQL, используемого Django, использовать SSL-соединение, по-видимому, он по умолчанию не включен/принудительно (варианты, которые вы использовали, могут быть недостаточными).