recuperar postgres password contraseña change postgresql postgresql-9.1 forgot-password

contraseña - reset password postgresql windows



Olvidé la contraseña que ingresé durante la instalación de Postgres (9)

  1. Edite el archivo /etc/postgresql/<version>/main/pg_hba.conf y busque la siguiente línea:

    local all postgres md5

  2. Edite la línea y cambie md5 al final para trust y guardar el archivo

  3. Recargar el servicio postgresql

    $ sudo service postgresql reload

  4. Esto cargará los archivos de configuración. Ahora puede modificar el usuario de postgres psql sesión en el shell psql

    $ psql -U postgres

  5. Actualiza la contraseña del usuario postgres

    alter user postgres with password ''secure-passwd-here'';

  6. Edite el archivo /etc/postgresql/<version>/main/pg_hba.conf y cambie la trust a md5 y guarde el archivo

  7. Recargar el servicio postgresql

    $ sudo service postgresql reload

  8. Verifique que el cambio de contraseña esté funcionando

    $ psql -U postgres -W

Olvidé o escribí mal (durante la instalación) la contraseña para el usuario predeterminado de Postgres. Parece que no puedo ejecutarlo y aparece el siguiente error:

psql: FATAL: password authentication failed for user "hisham" hisham-agil: hisham$ psql

¿Hay alguna forma de restablecer la contraseña o cómo puedo crear un nuevo usuario con privilegios de superusuario?

Soy nuevo en Postgres y simplemente lo instalé por primera vez. Estoy intentando usarlo con Rails y estoy ejecutando Mac OS X Lion.


  1. encuentre el archivo pg_hba.conf - puede estar ubicado, por ejemplo en /etc/postgresql-9.1/pg_hba.conf .

    cd /etc/postgresql-9.1/

  2. Respaldarlo

    cp pg_hba.conf pg_hba.conf-backup

  3. coloque la siguiente línea (ya sea como la primera línea sin comentar, o como la única):

    local all all trust

  4. reinicie su servidor PostgreSQL (por ejemplo, en Linux :)

    sudo /etc/init.d/postgresql restart

    Si el servicio (daemon) no comienza a generar informes en el archivo de registro:

    las conexiones locales no son compatibles con esta compilación

    debes cambiar

    local all all trust

    a

    host all all 127.0.0.1/32 trust

  5. ahora puede conectarse como cualquier usuario. Conéctese como superusuario postgres (tenga en cuenta que el nombre del superusuario puede ser diferente en su instalación. En algunos sistemas se llama pgsql , por ejemplo ) .

    psql -U postgres

    o

    psql -h 127.0.0.1 -U postgres

    (tenga en cuenta que con el primer comando no siempre estará conectado con el host local)

  6. Restablecer la contraseña

    ALTER USER my_user_name with password ''my_secure_password'';

  7. Restaure el viejo pg_hba.conf ya que es muy peligroso mantenerse cerca

    cp pg_hba.conf-backup pg_hba.conf

  8. reinicie el servidor, para ejecutar con la caja fuerte pg_hba.conf

    sudo /etc/init.d/postgresql restart

Lectura adicional sobre ese archivo pg_hba: http://www.postgresql.org/docs/9.1/static/auth-pg-hba-conf.html


Al conectarse a postgres desde la línea de comandos, no se olvide de agregar -h localhost como parámetro de línea de comando. De lo contrario, postgres intentará conectarse utilizando el modo de autenticación PEER.

A continuación se muestra un restablecimiento de la contraseña, un inicio de sesión fallido con autenticación PEER y un inicio de sesión exitoso utilizando una conexión TCP.

# sudo -u postgres psql could not change directory to "/root" psql (9.1.11) Type "help" for help. postgres=# /password Enter new password: Enter it again: postgres=# /q

Defecto:

# psql -U postgres -W Password for user postgres: psql: FATAL: Peer authentication failed for user "postgres"

Trabajando con -h localhost :

# psql -U postgres -W -h localhost Password for user postgres: psql (9.1.11) SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256) Type "help" for help. postgres=#


El pg_hba.conf ( C:/Program Files/PostgreSQL/9.3/data ) ha cambiado desde que se dieron estas respuestas. Lo que funcionó para mí, en Windows, es abrir el archivo y cambiar el METHOD de md5 para trust :

# TYPE DATABASE USER ADDRESS METHOD # IPv4 local connections: host all all 127.0.0.1/32 trust # IPv6 local connections: host all all ::1/128 trust

Luego, usando pgAdmin III, inicié sesión sin contraseña y cambié la contraseña del usuario postgres'' yendo a File -> Change Password


El archivo .pgpass en el directorio de inicio de un usuario o el archivo al que hace referencia PGPASSFILE puede contener contraseñas que se utilizarán si la conexión requiere una contraseña (y de lo contrario no se ha especificado ninguna contraseña). En Microsoft Windows, el archivo se denomina% APPDATA% / postgresql / pgpass.conf (donde% APPDATA% hace referencia al subdirectorio Datos de la aplicación en el perfil del usuario).

Este archivo debe contener líneas del siguiente formato:

nombre de host: puerto: base de datos: nombre de usuario: contraseña

(Puede agregar un comentario de recordatorio al archivo copiando la línea anterior y precediéndola con #.) Cada uno de los primeros cuatro campos puede ser un valor literal, o *, que coincida con cualquier cosa. Se usará el campo de contraseña de la primera línea que coincida con los parámetros de conexión actuales. (Por lo tanto, ponga las entradas más específicas primero cuando esté usando comodines.) Si una entrada necesita contener: o /, escape este carácter con. Un nombre de host de localhost concuerda con las conexiones TCP (nombre de host localhost) y socket de dominio Unix (pghost empty o el directorio de socket predeterminado) que provienen de la máquina local. En un servidor en espera, el nombre de la base de datos de replicación coincide con las conexiones de replicación de transmisión realizadas en el servidor maestro. El campo de la base de datos tiene una utilidad limitada porque los usuarios tienen la misma contraseña para todas las bases de datos en el mismo clúster.

En los sistemas Unix, los permisos en .pgpass deben rechazar cualquier acceso al mundo o grupo; lograr esto por el comando chmod 0600 ~ / .pgpass. Si los permisos son menos estrictos que esto, el archivo será ignorado. En Microsoft Windows, se supone que el archivo está almacenado en un directorio que es seguro, por lo que no se realiza ninguna verificación especial de permisos.


Lo que hice para resolver el mismo problema fue:

Abra el archivo pg_hba.conf con el editor gedit desde la terminal:

sudo gedit /etc/postgresql/9.5/main/pg_hba.conf

Le pedirá una contraseña. Ingrese su contraseña de inicio de sesión de administrador. Esto abrirá gedit con el archivo. Pega la siguiente línea:

host all all 127.0.0.1/32 trust

justo debajo -

# Database administrative login by Unix domain socket

Guárdalo y ciérralo. Cierre el terminal y ábralo de nuevo y ejecute este comando:

psql -U postgres

Ahora ingresará a la consola psql. Ahora cambie la contraseña ingresando esto:

ALTER USER [your prefered user name] with password ''[desired password]'';

Si dice que el usuario no existe, en lugar de ALTER use CREATE .

Por último, elimine esa cierta línea que pegó en pg_hba y guárdela.


Para la instalación de Windows, se crea un usuario de Windows. Y "psql" usa este usuario para la conexión al puerto. Si cambia la contraseña del usuario de PostgreSQL, no cambiará la de Windows. La línea de comando juste a continuación solo funciona si tiene acceso a la línea de comando.

En su lugar, podría usar la aplicación de Windows GUI "c: / Windows / system32 / lusrmgr.exe". Esta aplicación administra usuarios creados por Windows. Entonces ahora puede modificar la contraseña.


Si estás en Windows, simplemente puedes ejecutar

net user postgres postgres

e inicie sesión en postgres con postgres / postgres como usuario / contraseña


Solo una nota, en Linux Simplemente puede ejecutar sudo su - postgres para convertirse en el usuario de postgres y desde allí cambiar lo que se requiere al usar psql.