Restablecimiento de la contraseña de PostgreSQL en Ubuntu [cerrado]


91

En Ubuntu, instalé la base de datos PostgreSQL y creé un superusuario para el servidor.

Si olvidé la contraseña del superusuario de postgresql, ¿cómo puedo restablecerla (la contraseña) para ese usuario?

Intenté desinstalarlo y luego instalarlo de nuevo, pero se conserva el superusuario creado anteriormente.

Respuestas:


208

Suponiendo que eres el administrador de la máquina, Ubuntu te ha otorgado el derecho a sudo para ejecutar cualquier comando como cualquier usuario.
También asumiendo que no restringió los derechos en el pg_hba.confarchivo (en el /etc/postgresql/9.1/maindirectorio), debería contener esta línea como la primera regla:

# Database administrative login by Unix domain socket  
local   all             postgres                                peer

(Acerca de la ubicación del archivo: 9.1es la versión principal de postgres y mainel nombre de su "clúster". Será diferente si usa una versión más nueva de postgres o nombres no predeterminados. Use elpg_lsclusters comando para obtener esta información para su versión / sistema).

De todos modos, si el pg_hba.confarchivo no tiene esa línea, edite el archivo, agréguelo y vuelva a cargar el servicio con sudo service postgresql reload.

Entonces debería poder iniciar sesión psqlcomo superusuario de postgres con este comando de shell:

sudo -u postgres psql

Una vez dentro de psql, emita el comando SQL:

ALTER USER postgres PASSWORD 'newpassword';

En este comando, postgreses el nombre de un superusuario. Si el usuario cuya contraseña se olvidó fuera ritesh, el comando sería:

ALTER USER ritesh PASSWORD 'newpassword';

Referencias: Documentación de PostgreSQL 9.1.13, Capítulo 19. Autenticación del cliente

Tenga en cuenta que debe escribir postgres con una sola S al final


2
Usé su método, mi nombre de superusuario es ritesh, mi pg_hba.conf es como lo que mencionó. Ejecuté el comando "ALTER USER postgres PASSWORD 'newpassword';" la consola muestra 'ALTER ROLE'. Luego salí usando ctrl + c después de eso ejecuté un comando createuser. Se muestra para ingresar una contraseña ingresé newpassword pero me está dando el error "createuser: no se pudo conectar a la base de datos postgres: FATAL : Error de autenticación de contraseña para el usuario "ritesh" ". ¿Cómo crear un usuario y cuál debería ser la contraseña para este comando?
— Ritesh Mehandiratta

Si desea cambiar la contraseña ritesh, cambie el SQL anterior aALTER USER ritesh PASSWORD 'newpassword'
— Daniel Vérité

debe reiniciar postgres después de cambiar pg_hba.conf ....
— Mahdi

1
No es necesario reiniciar, solo use pg_ctl reload.
— hbn
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.