130 votes

pas d'entrée pg_hba.conf pour l'hôte

J'obtiens l'erreur suivante lorsque j'essaie de me connecter en utilisant 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

Voici mon fichier 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

Mon code perl est

#!/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");

Puis-je savoir ce que j'ai manqué ici ?

1voto

Goku Points 200

Pour ceux qui obtiennent cette erreur dans DBeaver la solution a été trouvée aquí à la ligne :

@lcustodio sur la page SSL, définissez le mode SSL : require et laissez le champ SSL Factory vide ou utilisez org.postgresql.ssl.NonValidatingFactory.

Sous l'onglet Network -> SSL, j'ai coché la case Use SLL et défini Advance -> SSL Mode = require et cela fonctionne maintenant.

0voto

Lynx Kepler Points 332

Vérifiez également la variable PGHOST :

ECHO $PGHOST

pour voir s'il correspond au nom de la machine locale

0voto

Florin D Points 531

BTW, dans mon cas, j'ai dû spécifier l'utilisateur et le mot de passe dans l'url, et non pas comme des propriétés indépendantes, ils ont été ignorés et l'utilisateur de mon système d'exploitation a été utilisé pour se connecter.

Ma configuration se trouve dans un fichier server.xml de WebSphere 8.5.5.

<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>

Cela n'a pas fonctionné et j'ai obtenu l'erreur suivante :

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

-2voto

Balaji Points 1

Vérifiez le nom d'hôte/adresse de la connexion postgres dans pgadmin et utilisez les mêmes dans votre paramètre de connexion.

DBI connect('database=chaosLRdb;host= "gardez ce qui est mentionné" ;port=5433', 'postgres',...)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X