2

我正在尝试将 Django 连接到 AWS Aurora 服务器(RDS Aurora 5.6.10a),但我得到了

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',
            }
        }
    }
}

我也看过类似的问题,没有奏效

我还尝试使用mysql-connector-pythonandmysql.connector.django作为数据库引擎进行连接,并确保我设置了正确的配置(设置OPTIONS'sssl_cassl_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 的任何配置?

4

1 回答 1

0

我没有直接回答您的问题,但是当 MySQL 客户端未启用 ssl(如 MySQL 命令行和您的 PHP 解决方案)时,Aurora 显然没有做出有意义的(或正确的?)响应。

所以我的建议是以某种方式强制 Django 使用的 MySQL 客户端使用 SSL 连接,显然默认情况下它没有启用/强制(您使用的选项可能不足)。

于 2017-06-30T07:43:01.107 回答