es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Django utiliza el nombre de usuario de Ubuntu para conectarse a la base de datos en lugar del usuario de la base de datos que se encuentra en el archivo settings.py.

Estoy intentando ejecutar un sitio web de Django en una máquina AWS EC2 (Ubuntu). Mi base de datos PostgreSQL se está ejecutando en AWS RDS.

Cuando ejecuto $python manage.py runserver, arroja este error:

django.db.utils.OperationalError: la conexión al servidor en "xxxxx.xxxxx.us-east-2.rds.amazonaws.com" (xxx.xx.xx.xxx), puerto 5432, falló: FATAL: error de autenticación de contraseña para el usuario "ubuntu"

Básicamente, Django trata de conectar la base de datos usando el usuario “ubuntu” en lugar del usuario “postgres” en settings.py.

Mi settings.py:

DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.postgresql’,
‘NAME’: config(‘NAME’),
‘USER’: config(‘USER’),
‘PASSWORD’:config(‘PASSWORD’),
‘HOST’:config(‘HOST’)
}
}

Mi archivo .env:

SECRET_KEY=xxxx
DEBUG=True
HOST=xxx.xxx.us-east-2.rds.amazonaws.com
NAME=xxxx
USER=postgres
PASSWORD=xxxxxx

Mi contraseña tiene el carácter especial ‘#’.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que la conexión con el servidor PostgreSQL ha fallado debido a un nombre de usuario o contraseña incorrectos. Parece que la aplicación Django está intentando conectarse a la instancia RDS con el usuario “ubuntu” en lugar del usuario “postgres” especificado en el archivo .env.

    Para solucionar este problema, debe actualizar el archivo settings.py para especificar al usuario “postgres” de la siguiente manera:

     DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': config('NAME'),
            'USER': 'postgres',
            'PASSWORD': config('PASSWORD'),
            'HOST': config('HOST'),
            'PORT': 5432,
        }
    }
    

    Asegúrese de guardar el archivo e intentar ejecutar la aplicación Django nuevamente con el comando python manage.py runserver.

    Además, como se menciona en el archivo .env, asegúrese de haber configurado correctamente las variables de entorno HOST, NAME, USER y PASSWORD con sus respectivos valores. Por último, revise que su contraseña con un carácter especial (‘#’) esté correctamente establecida en el archivo .env y que esté siendo analizada correctamente por el método config de Django.

Comments are closed.