Saltar al contenido

psql: FATAL: el rol “postgres” no existe

Solución:

NOTA: Si instaló postgres usando homebrew, vea el comentario de @ user3402754 a continuación.

Tenga en cuenta que el mensaje de error no NO habla de una base de datos que falta, habla de una función que falta. Más adelante en el proceso de inicio de sesión, también podría tropezar con la base de datos que falta.

Pero el primer paso es verificar el rol que falta: ¿Cuál es el resultado dentro psql del comando du ? En mi sistema Ubuntu, la línea relevante se ve así:

                              List of roles
 Role name |            Attributes             | Member of 
-----------+-----------------------------------+-----------
 postgres  | Superuser, Create role, Create DB | {}        

Si no hay al menos un rol con superuser, entonces tienes un problema 🙂

Si hay uno, puede usarlo para iniciar sesión. Y mirando la salida de tu l comando: Los permisos para user sobre el template0 y template1 las bases de datos son las mismas que en mi sistema Ubuntu para el superusuario postgres. Así que creo que tu configuración usa user como superusuario. Entonces podrías probar este comando para iniciar sesión:

sudo -u user psql user

Si user es realmente el superusuario de DB, puede crear otro superusuario de DB y una base de datos privada y vacía para él:

CREATE USER postgres SUPERUSER;
CREATE DATABASE postgres WITH OWNER postgres;

Pero dado que su configuración de postgres.app no ​​parece hacer esto, tampoco debería hacerlo. Adapte el tutorial simple.

La clave es “Instalé postgres.app para mac”. Esta aplicación configura la instalación local de PostgreSQL con un superusuario de base de datos cuyo nombre de función es el mismo que su nombre de inicio de sesión (abreviado).

Cuando Postgres.app se inicia por primera vez, crea la base de datos $ USER, que es la base de datos predeterminada para psql cuando no se especifica ninguna. El usuario predeterminado es $ USER, sin contraseña.

Algunos scripts (por ejemplo, una copia de seguridad de la base de datos creada con pgdump en un sistema Linux) y los tutoriales supondrán que el superusuario tiene el nombre de rol tradicional de postgres.

Puede hacer que su instalación local parezca un poco más tradicional y evitar estos problemas haciendo una sola vez:

/Applications/Postgres.app/Contents/Versions/9.*/bin/createuser -s postgres

que hará esos FATAL: el rol “postgres” no existe irse.

Para Mac:

  1. Instalar Homebrew
  2. brew install postgres
  3. initdb /usr/local/var/postgres
  4. /usr/local/Cellar/postgresql/<version>/bin/createuser -s postgres o /usr/local/opt/postgres/bin/createuser -s postgres que solo usará la última versión.
  5. iniciar el servidor de Postgres manualmente: pg_ctl -D /usr/local/var/postgres start

Para iniciar el servidor al inicio

  • mkdir -p ~/Library/LaunchAgents
  • ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
  • launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

Ahora, está configurado, inicie sesión usando psql -U postgres -h localhost o use PgAdmin para GUI.

Por usuario predeterminado postgres no tendrá ninguna contraseña de inicio de sesión.

Consulte este sitio para obtener más artículos como este: https://medium.com/@Nithanaroy/installing-postgres-on-mac-18f017c5d3f7

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *