postgres pg_hba password mac for fatal failure failed conf allow all postgresql authentication

pg_hba - Error de PostgreSQL: Fatal: la función "nombre de usuario" no existe



postgres peer authentication failed (11)

Desinstalando todo y manteniendo Postgres.app:

brew cask uninstall postgres brew uninstall postgres brew cask install postgres rm -rf /Applications/Postgres93.app/ # shutdown any postgres instance # open postgres.app -> "Initialize"

Yo quería PostgreSQL 9.6

Estoy configurando mi PostgreSQL 9.1. No puedo hacer nada con PostgreSQL: no puedo createuser , no puedo createuser ; todas las operaciones devuelven el mensaje de error

Fatal: role h9uest does not exist

h9uest es mi nombre de cuenta, y sudo apt-get install PostgreSQL 9.1 bajo esta cuenta.
Persiste un error similar para la cuenta root .


Después de probar las soluciones de muchas otras personas, y sin éxito, esta respuesta finalmente me ayudó.

https://.com/a/16974197/2433309

En fin, corriendo

sudo -u postgres createuser owning_user

crea un rol con el nombre owning_user (en este caso, h9uest). Después de eso, puede ejecutar rake db:create desde el terminal con cualquier nombre de cuenta que configure sin tener que ingresar al entorno postgres.


En la solicitud del usuario local, no la solicitud del usuario root, escriba

sudo -u postgres createuser <local username>

Luego ingrese la contraseña para el usuario local.

Luego ingrese el comando anterior que generó "rol ''nombre de usuario'' no existe".

Por encima de los pasos resuelto el problema para mí. Si no, envíe los mensajes de la terminal para los pasos anteriores.


Esto funciona para mí:

psql -h localhost -U postgres


La instalación de postgres utilizando apt-get no crea un rol de usuario o una base de datos.

Para crear un rol de superusuario y una base de datos para su cuenta de usuario personal:

sudo -u postgres createuser -s $(whoami); createdb $(whoami)



Método de trabajo,

  1. vi /etc/postgresql/9.3/main/pg_hba.conf
  2. local all postgres peer aquí cambian peer to trust
  3. reiniciar, sudo service postgresql restart

  4. ahora intente, psql -U postgres


Siga estos pasos y funcionará para usted:

  1. ejecutar msfconsole
  2. tipo db_console
  3. Se le mostrará algo de información. Elija la información que le indica que haga: db_connect user:pass@host:port.../database siento, no lo recuerdo pero es como este, luego reemplace el usuario y la contraseña y el host y la base de datos con la información incluida en database.yml en el emplazamiento: /usr/share/metasploit-framework/config
  4. ya verás. reconstruyendo el modelo de caché en el fondo.
  5. Escriba apt-get update && apt-get upgrade después de la actualización reinicie el terminal y lunch msfconsole y funciona. Puede verificar que al escribir msfconsole: msf>db_status verá que está conectado.

Utilice los postgres usuarios del sistema operativo para crear su base de datos, siempre y cuando no haya configurado un rol de base de datos con los privilegios necesarios que correspondan a su usuario de sistema operativo del mismo nombre ( h9uest en su caso):

sudo -u postgres -i

Como se recomienda here o here .

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

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

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

Para arrancar el sistema de base de datos, un sistema recién inicializado siempre contiene un rol predefinido. Esta función es siempre un "superusuario" y, de forma predeterminada (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 crear más roles, primero debe conectarse como este rol inicial.

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

Lea sobre las funciones de la base de datos y la autenticación del cliente en el manual.


Inicializar manualmente el arranque de base de datos resuelto, en mi caso.

Ejecutar initdb hizo el truco por mí.

Por alguna razón, cuando instalé postgres, no se creó el "DB inicial".

Para resolver el problema, esta es la solución provista para la wiki postgreSQL - Primeros pasos .

initdb

Normalmente, la instalación de postgres en su sistema operativo crea una "base de datos inicial" e inicia la ejecución del demonio de servidor postgres. Si no, entonces necesitarás ejecutar initdb


sudo su - postgres psql template1

creando un rol en pgsql con privilegio como "superusuario"

CREATE ROLE username superuser; eg. CREATE ROLE demo superuser;

Entonces crea el usuario

CREATE USER username; eg. CREATE USER demo;

Asignar privilegios al usuario

GRANT ROOT TO username;

Y luego habilite el inicio de sesión de ese usuario, para que pueda ejecutar, por ejemplo: psql template1 , desde normal $ terminal:

ALTER ROLE username WITH LOGIN;