He instalado PostgreSQL y pgAdminIII en mi caja Ubuntu Karmic.
Puedo usar pgAdminIII con éxito (es decir, conectar / iniciar sesión), sin embargo, cuando intento iniciar sesión en el servidor usando el mismo nombre de usuario / pwd en la línea de comando (usando psql), aparece el error:
psql: FATAL: Ident authentication failed for user "postgres"
¿Alguien ahora cómo resolver este problema?
postgresql
morfeo
fuente
fuente
Respuestas:
¿Estableció la configuración adecuada en pg_hba.conf?
Vea https://help.ubuntu.com/stable/serverguide/postgresql.html cómo hacerlo.
fuente
Los siguientes pasos funcionan para una nueva instalación de postgres 9.1 en Ubuntu 12.04. (También funcionó para postgres 9.3.9 en Ubuntu 14.04).
Por defecto, postgres crea un usuario llamado 'postgres'. Iniciamos sesión como ella y le damos una contraseña.
Cierre sesión
psql
escribiendo\q
octrl+d
. Luego nos conectamos como 'postgres'. La-h localhost
parte es importante : le dice alpsql
cliente que deseamos conectarnos usando una conexión TCP (que está configurada para usar autenticación de contraseña), y no por una conexión PEER (que no le importa la contraseña).fuente
PGHOST=localhost
no necesita especificar la-h
opción cada vez. Esto también funciona con otrospg_*
comandos comopg_dump
.Editar el archivo
/etc/postgresql/8.4/main/pg_hba.conf
y reemplazarident
opeer
por cualquieramd5
otrust
, dependiendo de si desea que se pida una contraseña en su propia computadora o no. Luego vuelva a cargar el archivo de configuración con:fuente
restart
funcionó para mí, noreload
--- después de los cambios a/etc/postgresql/9.5/main/pg_hba.conf
(cambiopeer
atrust
).Recibes este error porque estás fallando la autenticación del cliente. Según el mensaje de error, probablemente tenga la configuración predeterminada de postgres, que establece el método de autenticación del cliente en "IDENT" para todas las conexiones de PostgreSQL.
Definitivamente debería leer la sección 19.1 Autenticación del cliente en el manual de PostgreSQL para comprender mejor la configuración de autenticación disponible (para cada registro en pg_hba.conf ), pero aquí está el fragmento relevante para ayudar con el problema que está teniendo (del manual de la versión 9.5 ):
Entonces ... para resolver el problema que estás experimentando, puedes hacer uno de los siguientes:
Cambie los métodos de autenticación definidos en su
pg_hba.conf
archivo atrust
,md5
opassword
(según sus necesidades de seguridad y simplicidad) para los registros de conexión local que haya definido allí.Actualice
pg_ident.conf
para asignar los usuarios de su sistema operativo a los usuarios de PostgreSQL y otorgarles los privilegios de acceso correspondientes, según sus necesidades.Deje en paz la configuración de IDENT y cree usuarios en su base de datos para cada usuario del sistema operativo al que desee otorgar acceso. Si un usuario ya está autenticado por el sistema operativo y ha iniciado sesión, PostgreSQL no requerirá más autenticación y otorgará acceso a ese usuario en función de los privilegios (roles) que se le asignen en la base de datos. Esta es la configuración por defecto.
Nota: La ubicación de
pg_hba.conf
ypg_ident.conf
depende del sistema operativo.fuente
/etc/postgresql/9.6/main/pg_hba.conf
.Simplemente agregar el
-h localhost
bit fue todo lo mío necesario para trabajarfuente
this_computer = 'http://localhost'
Puede establecer la variable de entorno
PGHOST=localhost
:fuente
En caso de que nada de lo anterior funcione para usted:
he realizado bastantes instalaciones de Postgres, pero hoy me quedé desconcertado en un sistema RedHat 6.5 (instalando Postgres 9.3). Mi configuración típica de hba.conf que Aron muestra arriba no funcionó. Resultó que mi sistema estaba usando IPV6 e ignorando la configuración de IPV4. Agregando la línea:
me permitió iniciar sesión con éxito.
fuente
De todas las respuestas anteriores, nada funcionó para mí. Tuve que cambiar manualmente la contraseña de los usuarios en la base de datos y de repente funcionó.
Usé la siguiente configuración:
pg_hba.conf
La conexión es exitosa finalmente para el siguiente comando:
fuente
Descubrí que tenía que instalar un servidor de identidad, que escucha en el puerto 113.
Y luego ident funcionó.
fuente
Hmmm ...
Si puede conectarse con el nombre de usuario y la contraseña en pgAdminIII pero no puede conectarse con
psql
entonces esos dos programas probablemente se estén conectando a la base de datos de manera diferente.[Si se está conectando a diferentes bases de datos, primero intente conectarse a la misma base de datos. Vea abajo.]
Desde PostgreSQL: Documentación: 9.3: psql :
Si no está ejecutando algo así
psql ... -h host_name ...
, y está ejecutando Ubuntu,psql
debería conectarse a través de un socket de dominio Unix, por lo que PostgreSQL probablemente no esté configurado para permitir uno de los métodos de autenticación de contraseña para el usuario de postgres .Puede probar esto ejecutando:
sudo -u postgres psql
Si lo anterior funciona, es probable que su servidor esté configurado para usar autenticación de pares para conexiones locales por parte del usuario postgres , es decir, pedirle al sistema operativo su nombre de usuario para confirmar que usted es postgres .
Entonces, probablemente sea su archivo pg_hba.conf
La ruta completa del archivo será algo así como /etc/postgresql/9.3/main/pg_hba.conf . Puede verlo por ej
sudo cat /etc/postgresql/9.3/main/pg_hba.conf | more
.Si está omitiendo el nombre de host en su
psql
comando, debería poder conectarse si agrega la siguiente entrada a su archivo pg_hba.conf :[Las líneas comentadas en el archivo pg_hba.conf comienzan con
#
.]Si está incluido el nombre de host en su
psql
comando, agregue esta entrada en su lugar:Debe colocar la entrada antes de que cualquier otra entrada coincida con su conexión a través de
psql
. Si tiene dudas sobre dónde colocarlo, simplemente colóquelo antes de la primera línea sin comentarios.Más acerca de pg_hba.conf
Desde PostgreSQL: Documentación: 9.3: El archivo pg_hba.conf [negrita énfasis]:
Tenga en cuenta que los registros no coinciden con el método de autenticación. Entonces, si su archivo pg_hba.conf contiene la siguiente entrada:
Entonces no podrás conectarte a través de:
psql -u postgres
A menos que una de estas entradas esté en su archivo pg_hba.conf sobre la entrada anterior:
fuente
En mi caso, solución aquí: (para las personas interesadas) inicie sesión en postgres:
Saludos
fuente
El problema sigue siendo su archivo pg_hba.conf. Esta línea: puede encontrar este archivo en / etc / postgres / varion / main
Estas son breves descripciones de ambas opciones según los documentos oficiales de PostgreSQL sobre métodos de autenticación.
Autenticación entre pares
El método de autenticación de pares funciona obteniendo el nombre de usuario del sistema operativo del cliente del núcleo y usándolo como el nombre de usuario permitido de la base de datos (con asignación de nombre de usuario opcional). Este método solo es compatible con conexiones locales.
Autenticación de contraseña
Los métodos de autenticación basados en contraseña son md5 y contraseña. Estos métodos funcionan de manera similar, excepto por la forma en que se envía la contraseña a través de la conexión, a saber, hash MD5 y texto sin cifrar respectivamente.
Si le preocupan los ataques de "olfateo" de contraseñas, entonces se prefiere md5. La contraseña simple siempre debe evitarse si es posible. Sin embargo, md5 no se puede usar con la función db_user_namespace. Si la conexión está protegida por encriptación SSL, la contraseña se puede usar de forma segura (aunque la autenticación de certificado SSL podría ser una mejor opción si se depende de usar SSL).
Después de modificar este archivo, no olvide reiniciar su servidor PostgreSQL. Si estás en Linux, eso sería
sudo service postgresql restart.
fuente
Para fedora26 y postgres9.6
Primero, inicie sesión como usuario root y luego ingrese a psql con los siguientes comandos
entonces
en
psql
buscar ubicación de hba_file ==> significapg_hba.conf
en el archivo
pg_hba.conf
cambia el acceso del usuario a estefuente
mi solución en PostgreSQL 9.3 en Mac OSX en bash shell fue usar
sudo
para ir a la carpeta de datos y luego agregar las líneas necesarias alpg_hba.conf
archivo para permitir que todos los usuarios sean de confianza y puedan iniciar sesión. Esto es lo que hice :fuente
Si ha hecho todo esto y aún no funciona, verifique la caducidad de ese usuario:
La autenticación de contraseña de Postgres falla
fuente
He pasado más tiempo resolviendo este error que me gustaría admitir.
El orden de configuración de autenticación en pg_hba.conf es relevante en su caso, creo. El archivo de configuración predeterminado incluye varias líneas en una instalación estándar. Estos valores predeterminados pueden coincidir con las condiciones de sus intentos de autenticación, lo que resulta en una falla de autenticación. Falla independientemente de la configuración adicional agregada al final del archivo .conf.
Para verificar qué línea de configuración se utiliza, asegúrese de buscar mensajes en el archivo de registro predeterminado. Puede que veas algo como esto
Resulta que esta línea predeterminada está causando el rechazo.
intenta comentarlo.
fuente
Un truco para esto es editar pg_hba.conf
A temporalmente
En este punto ya has terminado. Por seguridad, entonces ve y
luego regrese y configure pg_hba.conf nuevamente en
fuente
Tuve un problema similar y lo arreglé en pg_hba.conf al eliminar todos los métodos de identificación , incluso para la dirección IP6 (a pesar de que solo tengo IP4 en la máquina).
fuente
Tuve el mismo problema después de seguir esto: configuración de PostgreSQL para el desarrollo de Rails en Ubuntu 12.04
Intenté las otras respuestas pero todo lo que tenía que hacer era: "config / database.yml"
fuente
Si lo está utilizando en CentOS, es posible que deba volver a cargar postgres después de realizar las soluciones anteriores:
fuente
postgresql
systemctl status | grep postgres
Tuve que reinstalar pdAdmin para resolver este problema
fuente
Para Windows, si no desea editar pb_gba.conf, es decir, dejar el método en MD5 (predeterminado), cree un nuevo usuario, ejecutando esta consulta en la herramienta de consulta en PGadmin
luego en cmd
donde dbname es tu db en postgresql
fuente
Esto funcionó para mí: http://tecadmin.net/fatal-ident-authentication-failed-for-user-postgres/#
fuente