Intento ejecutar el sitio web de django en la máquina aws ec2 (ubuntu). mi base de datos postgresql ejecutándose en aws RDS
cuando ejecuto el servidor de ejecución $python manage.py, arroja este error:
django.db.utils.OperationalError: connection to server at "xxxxx.xxxxx.us-east-2.rds.amazonaws.com" (xxx.xx.xx.xxx), port 5432 failed: FATAL: password authentication failed for user "ubuntu"básicamente django tratando de conectar la base de datos usando el usuario de ubuntu en lugar del usuario de postgres en settings.py
mi configuración.py:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': config('NAME'), 'USER': config('USER'), 'PASSWORD':config('PASSWORD'), 'HOST':config('HOST') #'HOST':'localhost' }}
Archivo .env:
SECRET_KEY=xxxx DEBUG=True HOST=xxx.xxx.us-east-2.rds.amazonaws.com NAME=xxxx USER=postgres PASSWORD=xxxxxxmi contraseña tiene un carácter especial especial '#'
Una distribución de Linux normalmente usa la variable $USER para especificar el nombre del usuario, no de la base de datos.
Aconsejaría usar $DB_USER o algo similar, entonces:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': config(' DB_NAME '), 'USER': config(' DB_USER '), 'PASSWORD':config(' DB_PASSWORD '), 'HOST':config(' DB_HOST ') } }y luego configurar con:
SECRET_KEY=xxxx DEBUG=True DB_HOST =xxx.xxx.us-east-2.rds.amazonaws.com DB_NAME =xxxx DB_USER =postgres DB_PASSWORD =xxxxxx