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.

Ritesh Mehandiratta
fuente

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

Daniel Vérité
fuente
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