postgresql - password - psql: fatal: peer authentication failed for user "postgres"
Postgresql: error de autenticación de contraseña para el usuario "postgres" (12)
Aquí hay algunas combinaciones que intenté iniciar sesión:
# login via user foo
psql -Ufoo -h localhost
sudo -u postgres psql postgres
# user foo login to postgres db
psql -Ufoo -h localhost -d postgres
He instalado PostgreSQL 8.4, cliente de Postgres y Pgadmin 3. Falló la autenticación para el usuario "postgres" para el cliente de consola y Pgadmin. He escrito usuario como "postgres" y contraseña "postgres", porque funcionó antes. Pero ahora la autenticación ha fallado. Lo hice antes un par de veces sin este problema. ¿Qué tengo que hacer? ¿Y que pasa?
psql -U postgres -h localhost -W
Password for user postgres:
psql: FATAL: password authentication failed for user "postgres"
FATAL: password authentication failed for user "postgres"
Como regla empírica: NUNCA DEBE ESTABLECER UNA CONTRASEÑA PARA EL USUARIO DE POSTGRES .
Si necesita un acceso de superusuario desde pgAdmin, cree otro superusuario. De esa manera, si las credenciales de ese superusuario se ven comprometidas, siempre puede ssh en el host de la base de datos real y eliminar manualmente el superusuario usando
sudo -u postgres -c "DROP ROLE superuser;"
Edite el archivo pg_hba.conf, por ejemplo, con sudo emacs /etc/postgresql/9.3/main/pg_hba.conf
Cambia todos los métodos de autenticación para trust
. Cambiar la contraseña de Unix para el usuario "postgres". Reinicie el servidor. Inicie sesión con psql -h localhost -U postgres
y use la contraseña Unix que acaba de configurar. Si funciona, puede restablecer el archivo pg_hba.conf a los valores predeterminados.
Espero que esto te ayude en poco tiempo. Puede cambiar la contraseña de postgres sql usando el siguiente comando.
Mando
sudo -u postgres psql
Y luego puedes actualizar la contraseña.
Mando
Modificar la contraseña de usuario "YOUR_NEW_PASSWORD";
Esto fue frustrante, la mayoría de las respuestas anteriores son correctas, pero no mencionan que debe reiniciar el servicio de base de datos antes de que los cambios en el archivo pg_hba.conf surtan efecto.
así que si haces algo como lo anterior
local todos los postgres ident
luego reinicie como root (en centos es algo así como el servicio service postgresql-9.2 restart) ahora debería poder acceder a la base de datos como el usuario postgres
$ psql psql (9.2.4) Escriba "ayuda" para obtener ayuda.
postgres = #
Espero que esto agregue información para los nuevos usuarios de postgres
Intente no usar el parámetro -W y deje la contraseña en blanco. A veces el usuario se crea sin contraseña.
Si eso no funciona restablece la contraseña. Hay varias formas de hacerlo, pero esto funciona en muchos sistemas:
$ su root
$ su postgres
$ psql -h localhost
> ALTER USER postgres with password ''YourNewPassword'';
La respuesta del personal es correcta, pero si desea automatizar aún más puede hacer:
$ sudo -u postgres psql -c "ALTER USER postgres PASSWORD ''postgres'';"
¡Hecho! Guardó Usuario = postgres y contraseña = postgres.
Si no tiene una contraseña para el usuario postgres ubuntu, haga lo siguiente:
$ sudo passwd postgres
Para aquellos que lo usan por primera vez y no tienen información sobre cuál es la contraseña, pueden seguir los pasos a continuación (asumiendo que usted está en Ubuntu):
Abra el archivo pg_hba.conf en
/etc/postgresql/9.x/main
sudo vi pg_hba.conf
2. edita la linea de abajo
local all postgres peer
a
local all postgres trust
Reiniciar el servidor
sudo service postgresql restart
Finalmente, puede iniciar sesión sin necesidad de una contraseña como se muestra en la figura
Ref. Aquí para más información.
Si está intentando iniciar sesión en el shell de Postgres como usuario de Postgres, puede utilizar los siguientes comandos.
cambiar a usuario postgres
# su - postgres
iniciar sesión en psql
# psql
Espero que ayude
Si recuerdo correctamente, el usuario postgres
no tiene una contraseña de DB configurada en Ubuntu por defecto. Esto significa que puede iniciar sesión en esa cuenta solo con la cuenta de usuario de postgres
OS .
Suponiendo que tiene acceso de root
en el cuadro que puede hacer:
sudo -u postgres psql
Si eso falla con una database "postgres" does not exists
error, es probable que no esté en un servidor Ubuntu o Debian :-) En este caso, simplemente agregue template1
al comando:
sudo -u postgres psql template1
Si alguno de esos comandos falla con un error psql: FATAL: password authentication failed for user "postgres"
entonces verifique el archivo /etc/postgresql/8.4/main/pg_hba.conf
: Debe haber una línea como esta como la primera línea de comentario:
local all postgres ident
Para las versiones más recientes de PostgreSQL, la ident
podría ser peer
. Eso está bien también.
Dentro del shell psql
puede dar al usuario de DB una contraseña:
ALTER USER postgres PASSWORD ''newPassword'';
Puede dejar el shell psql
escribiendo Ctrl D o con el comando /q
.
Ahora debería poder darle a pgAdmin una contraseña válida para el superusuario de la base de datos y estará feliz también. :-)
Solo quería agregar que también debería comprobar si su contraseña ha caducado.
Ver la autenticación de contraseña de Postgres falla para más detalles.
Tuve un problema similar. Me dejaron Ubuntu inicie sesión en la consola con cualquier contraseña para superusuario. Excepto cuando me conecté con -h localhost en el comando de línea psql.
También observé que "localhost: 8080 / MyJSPSiteLogIn" - mostró: Fatal: error de autenticación con el usuario "usuario".
pg_hba.conf estaba bien.
Noté que había dos versiones de postgres ejecutándose en el mismo servicio.
Resuelto - desinstalación de la versión inutil.