我已经使用 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 服务器无法访问数据库,这可能会发生多种问题:
它们位于不同且未连接的 VPN 或网络中。
运行 Django 的 EC2 计算机的安全组不允许此出站流量到达此网络端口组合。
RDS 中的安全组不允许来自 EC2 计算机所在网络的 3306 端口的入站流量。
如果您处于使用 AWS 账户提供的默认网络的场景中,则可能会放弃第一个场景。此外,默认情况下,EC2 机器允许所有传出流量。
因此,我最好的建议是开始检查控制 RDS 入站流量的安全组。
有关更多信息:https://docs.aws.amazon.com/en_us/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html
3
+50 આએકસમસ્યાહોયલાગેલાગેછે,djangoસર્વરસર્વરસુધીપહોંચવામાંસક્ષમ,આઆસક્ષમસક્ષમનથીસક્ષમનથીસમસ્યાઓમાટેમાટેમાટે
તેઓઅલગ-અલગઅનેઅનકનેક્ટેડVPNઅથવાનેટવર્ક્સમાVPN ંછે.EC2 મશીન માટે સુરક્ષા જૂથ જ્યાં Django ચાલી રહ્યું છે તેઆનેટવર્ક-પોર્ટસંયોજનમાંઆઆઉટબાઉન્ડટ્રાફ િકનેમંજૂરીઆપતુંનથી。
RDS માં સુરક્ષા જૂથ નેટવર્કમાંથી ઇનબાઉન્ડ ટ્રા ફિકનેમંજૂરીઆપતુંનથીજ્યાંEC2મશીન3306પોર્ટમાટ ેછે.
જો તમે AWS એકાઉન્ટ સાથે પ્રદાન કરેલ ડિફૉલ્ટ નેટટ ર્કિંગનોઉપયોગકરીરહ્યાંહોવતેવાદૃશ્યમાંહો વતોતેપ્રથમદૃશ્યનેકાઢીનાખવાનીશક્યતાછે。 EC2 型号ીનોમાટેમાન્યછે。
તેથીમારુંશ્રેષ્ઠસૂચનએછેકેતમારાRDSપરઆવતા ટ્રાફિકનેનિયંત્રિતકરતાસુરક્ષાજૂથપરતપાસસુરક્ષાજૂથપરતપાસ કરવાનુંશરૂકરો。
વધુમાહિતીમાટે:
https://docs.aws.amazon.com/en_us/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html 3