【发布时间】:2021-09-16 23:04:08
【问题描述】:
我已经使用 MySQL 数据库设置了 Amazon Relational Database Service (RDS),我正在尝试将它与我的 django 应用程序连接,但出现上述错误。我在settings.py中的数据库设置如下:
DATABASES = {
'default': {
'ENGINE': config('db_engine'),
'NAME': config('db_name'),
'USER': config('db_user'),
'PASSWORD': config('db_password'),
'HOST': config('db_host'),
'PORT': config('db_port')
}
}
而我的数据库环境变量如下:
db_engine=django.db.backends.mysql
db_name=stagingdatabase
db_user=staginguser
db_password=stagingpassword
db_host=somestagingname.somestagingid.us-east-2.rds.amazonaws.com
db_port=3306
我知道端口是正确的,这是大多数情况下出现此类错误的解决方案。所有其他变量也是正确的。
我无法 ping somestagingname.somestagingid.us-east-2.rds.amazonaws.com 即使它的状态是可用的,所以我如何设置 RDS 肯定有问题:
【问题讨论】:
-
您能否提供此用例的网络信息?你从哪里执行 django 代码?是否在安全组中启用了 rds 访问?
-
@RafaelAguilar,代码在带有 nginx 的实时 ubuntu 服务器上运行。我也在 ALLOWED_HOSTS 上添加了 db_host。这是你的意思吗?另外,我不知道我需要在安全组中启用某种 rds 访问权限。
-
我猜 Nginx 在 EC2 机器上运行的是什么。对吧?
-
关于 DB 和 EC2 机器之间的安全访问,您需要进行一些配置检查:docs.aws.amazon.com/en_us/AmazonRDS/latest/UserGuide/…
-
让我知道它是如何进行的,如果它有效,请编辑以前作为答案。
标签: python mysql django amazon-rds