PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 02/11/2021 11:56:43

[Résolu] Problème de connexion à postgreSQL en réseau local

Bonjour,

Je viens sur ce forum pour m'aider à me dépatouiller d'un soucis de connexion à mon serveur postgreSQL en local.


J'ai un home server sous Debian 11 sur lequel j'ai installé Postgresql sans soucis.


Depuis mon PC (client) j'ai installé dbeaver afin d'essayer de me connecter à postgresql sur mon serveur.
J'ai d'abord créé un user avec password directement sur mon serveur dans la base postgreSQL(pour ne par avoir à utiliser le user 'postgres' de base).


Ensuite dans dbeaver, dans le paramétrage de la connexion, j'ai bien renseigné les infos suivantes :

- l'hôte : l'IP de mon serveur (qui est fixe).
- port : 5432 (le port par défaut que j'ai bien entendu ouvert dans le firewell UFW que j'ai sur mon serveur)
- user : le nom du user que j'ai créé
- password : le password que j'ai créé en même temps que le user.


Au moment de du test de la connexion, j'ai une erreur :

    Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.


J'ai été modifié le fichier de conf pour mettre '*' sur la ligne listen_adress. Mais rien n'y fait.


Merci d'avance pour votre aide.

Dernière modification par GrosJambon33000 (04/11/2021 00:32:24)

Hors ligne

#2 02/11/2021 14:17:43

dverite
Membre

Re : [Résolu] Problème de connexion à postgreSQL en réseau local

Ca peut venir du serveur, du réseau (firewall) ou du client (firewall aussi). Mais "Connection refused" ce n'est généralement pas un firewall, vu qu'ils sont  souvent configurés pour ne rien répondre, ce qui se traduit par un timeout.

Je commençerais par tester le serveur en lançant dans un shell tournant sur le serveur: psql -h ip-distante

Hors ligne

#3 02/11/2021 23:14:26

Re : [Résolu] Problème de connexion à postgreSQL en réseau local

Alors je viens de tenter la commande suivante directement depuis le serveur :
   
    psql -h ip-du-client


et voici le retour :

    psql: erreur : n'a pas pu se connecter au serveur : Connexion refusée
        Le serveur est-il actif sur l'hôte « ip-du-client » et accepte-t-il les connexions
        TCP/IP sur le port 5432 ?


merci pour l'aide

Hors ligne

#4 03/11/2021 00:04:09

gleu
Administrateur

Re : [Résolu] Problème de connexion à postgreSQL en réseau local

Avez-vous redémarrer le serveur PostgreSQL après avoir fait votre modification sur listen_addresses ?


Guillaume.

Hors ligne

#5 03/11/2021 00:28:26

Re : [Résolu] Problème de connexion à postgreSQL en réseau local

Oui j'ai bien redémarré le serveur postgresql après modifications.


J'arrive bien a me connecter en local a la base directement depuis le serveur.


J'ai été voir dans les logs postgresql sur le serveur et aucune trace de mes tentatives de connexions infructueuses.
On dirait que mon client n'arrive pas a atteindre le serveur.

Hors ligne

#6 03/11/2021 06:13:31

rjuju
Administrateur

Re : [Résolu] Problème de connexion à postgreSQL en réseau local

Avez-vous un seul serveur postgres configuré ?  Vous pouvez vérifier avec "pg_lsclusters".  Cela confirmera également le port de connexion.


Pouvez-vous également valider que le changement de configuration est bien effectif, en étant connecté avec psql localement: SELECT name, current_setting(name) FROM pg_settings WHERE source <> 'default';


Si tout est bon, le problème est effectivement lié à votre configuration réseau / firewall.

Hors ligne

#7 03/11/2021 08:51:31

Re : [Résolu] Problème de connexion à postgreSQL en réseau local

Voila les retours des commandes.


pg_lsclusters


Ver Cluster Port Status Owner    Data directory              Log file
13  main    5432 online postgres /var/lib/postgresql/13/main /var/log/postgresql/postgresql-13-main.log


SELECT name, current_setting(name) FROM pg_settings WHERE source <> 'default';


            name            |             current_setting             
----------------------------+-----------------------------------------
application_name           | psql
client_encoding            | UTF8
cluster_name               | 13/main
config_file                | /etc/postgresql/13/main/postgresql.conf
data_checksums             | off
data_directory             | /var/lib/postgresql/13/main
DateStyle                  | ISO, DMY
default_text_search_config | pg_catalog.french
dynamic_shared_memory_type | posix
external_pid_file          | /var/run/postgresql/13-main.pid
hba_file                   | /etc/postgresql/13/main/pg_hba.conf
ident_file                 | /etc/postgresql/13/main/pg_ident.conf
lc_collate                 | fr_FR.UTF-8
lc_ctype                   | fr_FR.UTF-8
lc_messages                | fr_FR.UTF-8
lc_monetary                | fr_FR.UTF-8
lc_numeric                 | fr_FR.UTF-8
lc_time                    | fr_FR.UTF-8
listen_addresses           | 127.0.0.1,192.168.1.87
log_line_prefix            | %m [%p] %q%u@%d
log_timezone               | Europe/Paris
max_connections            | 100
max_stack_depth            | 2MB
max_wal_size               | 1GB
min_wal_size               | 80MB
port                       | 5432
server_encoding            | UTF8
shared_buffers             | 128MB
ssl                        | on
ssl_cert_file              | /etc/ssl/certs/ssl-cert-snakeoil.pem
ssl_key_file               | /etc/ssl/private/ssl-cert-snakeoil.key
stats_temp_directory       | /var/run/postgresql/13-main.pg_stat_tmp
TimeZone                   | Europe/Paris
transaction_deferrable     | off
transaction_isolation      | read committed
transaction_read_only      | off
unix_socket_directories    | /var/run/postgresql
wal_buffers                | 4MB
wal_segment_size           | 16MB
(39 lignes)

Hors ligne

#8 03/11/2021 09:36:27

rjuju
Administrateur

Re : [Résolu] Problème de connexion à postgreSQL en réseau local

À priori, soit votre serveur à une autre IP à part 192.168.1.87 et c'est cette autre adresse que vous utilisez, soit un élément réseau bloque la connexion.

Hors ligne

#9 03/11/2021 10:18:40

Re : [Résolu] Problème de connexion à postgreSQL en réseau local

Mais dans listen_addresses c'est quoi qu'il faut mettre ? J'ai laissé le 127.0.0.1 et l'IP qui termine en 87 c'est celle de mon PC client avec lequel je tente de me connecter au serveur. Mon serveur lui se termine en 86.

Merci d'avance pour l'aide

Hors ligne

#10 03/11/2021 10:39:39

dverite
Membre

Re : [Résolu] Problème de connexion à postgreSQL en réseau local

Dans listen_addresses il faut effectivement des adresses IP du serveur, pas celles des PC clients. Ou '*' pour signifier toutes les adresses du serveur.

Hors ligne

#11 03/11/2021 10:41:19

dverite
Membre

Re : [Résolu] Problème de connexion à postgreSQL en réseau local

Une fois le listen_addresses correct, il faudra aller dans le pg_hba.conf autoriser les IPs des postes clients ou tout le réseau local 192.168.1.0/24

Hors ligne

#12 03/11/2021 22:37:24

Re : [Résolu] Problème de connexion à postgreSQL en réseau local

Alors je viens de configurer le postgresql.conf avec la ligne suivante (la seconde IP est celle de mon serveur):


    listen_addresses = '127.0.0.1,192.168.1.86'                     # what IP address(es) to listen on;


et le pg_hba.conf (la seconde IP est celle de mon PC client)


    # IPv4 local connections:
    host    all             all             127.0.0.1/32            md5
    host    all             all             192.168.1.87            md5


Et après avoir stoper postgreSQL et relancer ensuite (avec systemctl)


    - Toujours impossible de me connecter depuis le client. Avec la même erreur que depuis le début.


    - J'ai le service PostgreSQL Cluster 13-main qui ne veut plus démarrer. et dans les logs j'ai ça quand je tente de le redémarrer :


            2021-11-03 21:29:18.461 CET [1675] LOG:  démarrage de PostgreSQL 13.4 (Debian 13.4-0+deb11u1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
            2021-11-03 21:29:18.461 CET [1675] LOG:  en écoute sur IPv4, adresse « 127.0.0.1 », port 5432
            2021-11-03 21:29:18.463 CET [1675] LOG:  en écoute sur IPv4, adresse « 192.168.1.86 », port 5432
            2021-11-03 21:29:18.463 CET [1675] LOG:  écoute sur la socket Unix « /var/run/postgresql/.s.PGSQL.5432 »
            2021-11-03 21:29:18.467 CET [1675] LOG:  méthode d'authentification « 192.168.1.87 » invalide
            2021-11-03 21:29:18.467 CET [1675] CONTEXTE :  ligne 97 du fichier de configuration « /etc/postgresql/13/main/pg_hba.conf »
            2021-11-03 21:29:18.467 CET [1675] FATAL:  n'a pas pu charger pg_hba.conf
            2021-11-03 21:29:18.470 CET [1675] LOG:  le système de base de données est arrêté
            pg_ctl : n'a pas pu démarrer le serveur
            Examinez le journal applicatif.

Dernière modification par GrosJambon33000 (03/11/2021 22:38:49)

Hors ligne

#13 03/11/2021 23:34:53

dverite
Membre

Re : [Résolu] Problème de connexion à postgreSQL en réseau local

OK pour  "en écoute sur IPv4, adresse « 192.168.1.86 », port 5432"

Mais le problème du pg_hba.conf fait que le serveur ne démarre plus.

Dans le champ adresse il faut mettre 192.168.1.87/32 et non simplement 192.168.1.87

Par ailleurs il semble qu'il y ait un décalage de colonne sur cette ligne 97 puisqu'il dit que l'adresse est dans la méthode d'authentification, mais je ne vois pas où.

Hors ligne

#14 04/11/2021 00:32:03

Re : [Résolu] Problème de connexion à postgreSQL en réseau local

Super merci cela fonctionne maintenant.

je passe le sujet en résolu.

Hors ligne

Pied de page des forums