Olvidé o escribí mal (durante la instalación) la contraseña del 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 creo un nuevo usuario con privilegios de superusuario?
Soy nuevo en Postgres y lo acabo de instalar por primera vez. Estoy tratando de usarlo con Rails y estoy ejecutando Mac OS X Lion.
Respuestas:
busque el archivo
pg_hba.conf
; puede ubicarse, 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 (como la primera línea no comentada o como la única):
reinicie su servidor PostgreSQL (por ejemplo, en Linux :)
sudo /etc/init.d/postgresql restart
Si el servicio (daemon) no comienza a informar en el archivo de registro:
deberías 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 de 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 contraseña ('reemplace my_user_name con postgres porque está restableciendo el usuario de postgres )
ALTER USER my_user_name with password 'my_secure_password';
Restaura lo viejo,
pg_hba.conf
ya que es muy peligroso mantenerlocp pg_hba.conf-backup pg_hba.conf
reinicie el servidor para poder ejecutar con la caja fuerte
pg_hba.conf
sudo /etc/init.d/postgresql restart
Lecturas adicionales sobre ese archivo pg_hba: http://www.postgresql.org/docs/9.1/static/auth-pg-hba-conf.html
fuente
psql
? Todavía meAl conectarse a postgres desde la línea de comando, no olvide agregar
-h localhost
como parámetro de línea de comando. Si no, postgres intentará conectarse usando 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.
Defecto:
Trabajando con
-h localhost
:fuente
El archivo
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 elMETHOD
demd5
atrust
:Luego, usando pgAdmin III, inicié sesión sin contraseña y cambié la
postgres'
contraseña de usuario yendo aFile -> Change Password
fuente
trust
, puede seguir esto y modificar la contraseña en cmdSolo 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 usando psql.fuente
Edite el archivo
/etc/postgresql/<version>/main/pg_hba.conf
y busque la siguiente línea:Edite la línea y cambie
md5
al finaltrust
y guarde el archivoRecargue el servicio postgresql
Esto cargará los archivos de configuración. Ahora puede modificar el
postgres
usuario iniciando sesión en elpsql
shellActualiza la
postgres
contraseña del usuarioEdite el archivo
/etc/postgresql/<version>/main/pg_hba.conf
ytrust
vuelva amd5
guardarlo.Recargue el servicio postgresql
Verifique que el cambio de contraseña funciona
fuente
Estaba teniendo este problema en Windows 10 y el problema en mi caso era que solo estaba ejecutando
psql
y estaba predeterminado al intentar iniciar sesión con mi nombre de usuario de Windows ("Nathan"), pero no había ningún usuario de PostgreSQL con ese nombre, y no me estaba diciendo eso.Entonces, la solución fue ejecutar en
psql -U postgres
lugar de solopsql
, y luego la contraseña que ingresé en la instalación funcionó.fuente
Agregando la respuesta para el usuario de Windows para la última versión de postgres (> 10),
Vaya a su ubicación de instalación de postgres y busque
pg_hba.conf
, lo encontrará en..\postgres\data\pg_hba.conf
Abra ese archivo con el bloc de notas, busque esta línea,
Cambia el método de md5 a confianza,
Ahora ve a tu SQL Shell (PSQL) y deja todo en blanco,
No pedirá contraseña esta vez, y se iniciará sesión,
Ahora corre esta línea,
ALTER USER yourusername WITH SUPERUSER
Ahora puedes dejar el shell con \ q
Vuelva al archivo pg_hba.conf y cambie METHOD de trust a md5 nuevamente, y guárdelo.
Ahora inicie sesión con su nuevo usuario y contraseña y puede verificar \ du sus atributos.
fuente
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 comandos que se muestra a continuación solo funciona si tiene acceso a la línea de comandos.
En su lugar, puede utilizar la aplicación GUI de Windows "c: \ Windows \ system32 \ lusrmgr.exe". Esta aplicación administra usuarios creados por Windows. Entonces ahora puede modificar la contraseña.
fuente
Lo que hice para resolver el mismo problema fue:
Abra el archivo pg_hba.conf con el editor gedit desde la terminal:
Le pedirá contraseña. Ingrese su contraseña de inicio de sesión de administrador. Esto abrirá gedit con el archivo. Pegue la siguiente línea:
justo debajo -
Guárdalo y ciérralo. Cierre el terminal y ábralo nuevamente y ejecute este comando:
Ahora ingresará a la consola psql. Ahora cambie la contraseña ingresando esto:
Si dice que el usuario no existe, en lugar de
ALTER
usarCREATE
.Por último, elimine esa línea determinada que pegó en pg_hba y guárdela.
fuente
Si estás en Windows, solo puedes ejecutar
e inicie sesión en postgres con postgres / postgres como usuario / contraseña
fuente
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% se refiere al subdirectorio de 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 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 coincide con cualquier cosa. Se utilizará el campo de contraseña de la primera línea que coincida con los parámetros de conexión actuales. (Por lo tanto, coloque primero entradas más específicas cuando use comodines). Si una entrada necesita contener: o \, escape de este carácter con. Un nombre de host de localhost coincide con las conexiones TCP (nombre de host localhost) y socket de dominio Unix (pghost vacío 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 al servidor maestro. El campo de la base de datos es de utilidad limitada porque los usuarios tienen la misma contraseña para todas las bases de datos en el mismo clúster.
En sistemas Unix, los permisos en .pgpass deben prohibir cualquier acceso al mundo o grupo; lograr esto con 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 seguro, por lo que no se realiza ninguna verificación de permisos especiales.
fuente
Si está ejecutando postgresql en mac os, intente lo siguiente :
Edite el archivo pg_hba.conf
sudo vi /Library/PostgreSQL/9.2/data/pg_hba.conf
Cambie el método "md5" para que todos los usuarios "confíen" cerca del final del archivo
Encuentra el nombre del servicio
ls / Library / LaunchDaemons
Busque postgresql
Detenga el servicio postgresql
sudo launchctl stop com.edb.launchd.postgresql-9.2
Inicie el servicio postgresql
sudo launchctl start com.edb.launchd.postgresql-9.2
Iniciar sesión psql como postgres
psql -U postgres
(no debería solicitar una contraseña debido a la configuración de "confianza")
Restablezca la contraseña en la sesión de psql escribiendo
ALTERAR USUARIO postgres con la contraseña 'secure-new-password';
entrar
Edite el archivo pg_hba.conf
Vuelva a cambiarlo a 'md5'
Reiniciar servicios nuevamente
fuente
Esto es lo que me funcionó en Windows:
Edite la ubicación del archivo pg_hba.conf en C: \ Archivos de programa \ PostgreSQL \ 9.3 \ data.
# IPv4 local connections: host all all 127.0.0.1/32 trust
Cambie el método de confianza a md5 y reinicie el servicio postgres en windows.
Después de eso, puede iniciar sesión usando el usuario de postgres sin contraseña usando pgadmin. Puede cambiar la contraseña usando Archivo-> Cambiar contraseña.
Si el usuario postgres no tiene privilegios de superusuario, entonces no puede cambiar la contraseña. En este caso, inicie sesión con otro usuario (pgsql) con acceso de superusuario y proporcione privilegios a otros usuarios haciendo clic derecho en los usuarios y seleccionando propiedades-> Privilegios de roles.
fuente