util unable una psqlexception pg_hba pg_connect para org off línea inactivo hay for fatal entry conf perl postgresql database-permissions

perl - unable - no hay entrada pg_hba.conf para el host



org postgresql util psqlexception fatal no pg_hba conf entry for host (8)

En su archivo pg_hba.conf, veo algunas líneas incorrectas y confusas:

# fine, this allows all dbs, all users, to be trusted from 192.168.0.1/32 # not recommend because of the lax permissions host all all 192.168.0.1/32 trust # wrong, /128 is an invalid netmask for ipv4, this line should be removed host all all 192.168.0.1/128 trust # this conflicts with the first line # it says that that the password should be md5 and not plaintext # I think the first line should be removed host all all 192.168.0.1/32 md5 # this is fine except is it unnecessary because of the previous line # which allows any user and any database to connect with md5 password host chaosLRdb postgres 192.168.0.1/32 md5 # wrong, on local lines, an IP cannot be specified # remove the 4th column local all all 192.168.0.1/32 trust

Sospecho que si md5ndiste la contraseña, esto podría funcionar si cortas las líneas. Para obtener el md5 puede usar perl o el siguiente script de shell:

echo -n ''chaos123'' | md5sum > d6766c33ba6cf0bb249b37151b068f10 -

Entonces, su línea de conexión le gustaría algo como:

my $dbh = DBI->connect("DBI:PgPP:database=chaosLRdb;host=192.168.0.1;port=5433", "chaosuser", "d6766c33ba6cf0bb249b37151b068f10");

Para obtener más información, aquí está la documentación del archivo pg_hba.conf de postgres 8.X.

Obtengo un error de seguimiento cuando trato de conectarme usando DBI

DBI connect(''database=chaosLRdb;host=192.168.0.1;port=5433'',''postgres'',...) failed: FATAL: no pg_hba.conf entry for host "192.168.0.1", user "postgres", database "chaosLRdb", SSL off

Aquí está mi archivo pg_hba.conf:

# "local" is for Unix domain socket connections only local all all md5 # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5 host all postgres 127.0.0.1/32 trust host all postgres 192.168.0.1/32 trust host all all 192.168.0.1/32 trust host all all 192.168.0.1/128 trust host all all 192.168.0.1/32 md5 host chaosLRdb postgres 192.168.0.1/32 md5 local all all 192.168.0.1/32 trust

Mi código perl es

#!/usr/bin/perl-w use DBI; use FileHandle; print "Start connecting to the DB.../n"; @ary = DBI->available_drivers(true); %drivers = DBI->installed_drivers(); my $dbh = DBI->connect("DBI:PgPP:database=chaosLRdb;host=192.168.0.1;port=5433", "postgres", "chaos123");

¿Puedo saber lo que extraño aquí?


La configuración de tu servidor postgres parece correcta

host all all 127.0.0.1/32 md5 host all all 192.168.0.1/32 trust Eso debería otorgar acceso desde el cliente al servidor postgres. Entonces eso me lleva a creer que el nombre de usuario / contraseña es lo que está fallando.

Pruebe esto creando un usuario específico para esa base de datos

createuser -a -d -W -U postgres chaosuser

Luego ajusta tu script Perl para usar el usuario recién creado

my $dbh = DBI->connect("DBI:PgPP:database=chaosLRdb;host=192.168.0.1;port=5433", "chaosuser", "chaos123");


Para aquellos que tienen el problema similar tratando de conectarse a DB local y tratando como
con = psycopg2.connect(database="my_db", user="my_name", password="admin") , intente pasar el parámetro adicional, por lo que lo siguiente me salvó un día:
con = psycopg2.connect(database="my_db", user="my_name", password="admin", host="localhost")


Para resolver este problema, puedes intentar esto.

primero debes averiguar tu pg_hba.conf y escribir:

local all all md5

después de eso, reinicie el servidor pg:

postgresql restart

o

sudo /etc/init.d/postgresql restart


Por cierto, en mi caso era que necesitaba especificar el usuario / pwd en la url, no como propiedades independientes, se ignoraron y mi usuario del sistema operativo se usó para conectar

Mi configuración está en un archivo WebSphere 8.5.5 server.xml

<dataSource jndiName="jdbc/tableauPostgreSQL" type="javax.sql.ConnectionPoolDataSource"> <jdbcDriver javax.sql.ConnectionPoolDataSource="org.postgresql.ds.PGConnectionPoolDataSource" javax.sql.DataSource="org.postgresql.ds.PGPoolingDataSource" libraryRef="PostgreSqlJdbcLib"/> <properties url="jdbc:postgresql://server:port/mydb?user=fred&amp;password=secret"/> </dataSource>

Esto no funcionaría y estaba recibiendo el error:

<properties user="fred" password="secret" url="jdbc:postgresql://server:port/mydb"/>


Si obtiene un error como el siguiente:

OperationalError: FATAL: no pg_hba.conf entry for host "your ipv6", user "username", database "postgres", SSL off

luego agregue una entrada como la siguiente, con su dirección MAC.

host all all [your ipv6]/128 md5


Si puedes cambiar esta línea:

host all all 192.168.0.1/32 md5

Con este:

host all all all md5

Puedes ver resolver este problema.

Pero otra acción es que tu puerto postgresql (5432) esté muy abierto para intentar contraseñas con piratas informáticos (quizás puedan encontrarlo). Puede cambiar su puerto postgresql 5432 a ''33333'' u otro. Entonces no pueden conocer esta configuración.


también verifique la variable PGHOST:

ECHO $ ​​PGHOST

para ver si coincide con el nombre de la máquina local