Vous n'êtes pas identifié(e).
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
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
@DanielVerite
http://blog-postgresql.verite.pro/
Hors ligne
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
Avez-vous redémarrer le serveur PostgreSQL après avoir fait votre modification sur listen_addresses ?
Guillaume.
Hors ligne
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
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.
Julien.
https://rjuju.github.io/
Hors ligne
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
À 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.
Julien.
https://rjuju.github.io/
Hors ligne
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
Dans listen_addresses il faut effectivement des adresses IP du serveur, pas celles des PC clients. Ou '*' pour signifier toutes les adresses du serveur.
@DanielVerite
http://blog-postgresql.verite.pro/
Hors ligne
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
@DanielVerite
http://blog-postgresql.verite.pro/
Hors ligne
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
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ù.
@DanielVerite
http://blog-postgresql.verite.pro/
Hors ligne
Super merci cela fonctionne maintenant.
je passe le sujet en résolu.
Hors ligne