sql >> Base de Datos >  >> RDS >> PostgreSQL

Error de PostgreSQL:fatal:el nombre de usuario del rol no existe

Usar el usuario del sistema operativo postgres para crear su base de datos, siempre que no haya configurado una base de datos rol con los privilegios necesarios que corresponde al usuario de su sistema operativo del mismo nombre (h9uest en su caso):

sudo -u postgres -i

Como se recomienda aquí o aquí.

Vuelva a intentarlo. Escribe exit cuando termine de operar como usuario del sistema postgres .

O ejecute el comando único createuser como postgres con sudo , como lo demuestra drees en otra respuesta.

El punto es usar el usuario del sistema operativo que coincida con el rol de la base de datos del mismo nombre para obtener acceso a través de ident autenticación . postgres es el usuario del sistema operativo predeterminado que ha inicializado el clúster de la base de datos. El manual:

Para arrancar el sistema de la base de datos, un sistema recién inicializado siempre contiene un rol predefinido. Este rol es siempre un “superusuario”, y por defecto (a menos que se modifique al ejecutar initdb ) tendrá el mismo nombre que el usuario del sistema operativo que inicializó el clúster de la base de datos. Habitualmente, este rol se llamará postgres .Para poder crear más funciones, primero debe conectarse como esta función inicial.

He oído hablar de configuraciones extrañas con nombres de usuario no estándar o donde el usuario del sistema operativo no existe. Tendrías que adaptar tu estrategia allí.

Lea sobre los roles de la base de datos y la autenticación de clientes en el manual.