contraseña - reset password postgresql windows
Olvidé la contraseña que ingresé durante la instalación de Postgres (9)
Edite el archivo
/etc/postgresql/<version>/main/pg_hba.conf
y busque la siguiente línea:local all postgres md5
Edite la línea y cambie
md5
al final paratrust
y guardar el archivoRecargar el servicio postgresql
$ sudo service postgresql reload
Esto cargará los archivos de configuración. Ahora puede modificar el usuario de
postgres
psql
sesión en el shellpsql
$ psql -U postgres
Actualiza la contraseña del usuario
postgres
alter user postgres with password ''secure-passwd-here'';
Edite el archivo
/etc/postgresql/<version>/main/pg_hba.conf
y cambie latrust
amd5
y guarde el archivoRecargar el servicio postgresql
$ sudo service postgresql reload
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.
encuentre el archivo
pg_hba.conf
- puede estar ubicado, por ejemplo en/etc/postgresql-9.1/pg_hba.conf
.cd /etc/postgresql-9.1/
Respaldarlo
cp pg_hba.conf pg_hba.conf-backup
coloque la siguiente línea (ya sea como la primera línea sin comentar, o como la única):
local all all trust
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
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 llamapgsql
, 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)
Restablecer la contraseña
ALTER USER my_user_name with password ''my_secure_password'';
Restaure el viejo
pg_hba.conf
ya que es muy peligroso mantenerse cercacp pg_hba.conf-backup pg_hba.conf
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.