web-dev-qa-db-fra.com

Le serveur Postgres n'écoute pas

J'essaie de me connecter avec mon client (Macbook Pro) à une base de données Postgres située dans un autre PC du même réseau (Ubuntu) Je peux voir la base de données de l'hôte avec pgAdmin, en se connectant à localhost, mais je ne peut pas voir du client.

J'ai autorisé toutes les connexions dans pg_hba.conf et postgresql.conf

J'essaie de me connecter depuis le client via pgAdmin au serveur IP où la base de données est stockée (192.168.1.34) et au port 5432.

enter image description here Et j'obtiens cette erreur enter image description here Qu'est-ce que je fais mal?

Est-ce que je manque quelque chose

Après avoir lu les suggestions, je peux dire: Sur la machine Ubuntu (serveur de test domestique), je n’ai pas de pare-feu. Postgres est en cours d’exécution.

J'ai essayé depuis la console Ubuntu d'accéder à la base de données: psql -h 127.0.0.1 mydatabase postgres et peut se connecter (ce qui signifie que le serveur est en cours d'exécution et que le nom d'utilisateur est correct) Mais si j'essaie d'accéder à la même base de données , à partir du même ordinateur, en changeant localhost avec l’IP, je ne peux pas me connecter. Ne devrait-il pas être psql -h 127.0.0.1 mydatabase postgres identique à psql -h 192.168.1.34 mydatabase postgres lorsque je me connecte à partir du serveur?

Peut-être est-il en boucle, comme l'a suggéré Alain?

5
Pablo Pardo

Comme il ne se connecte pas, il est probable qu'il n'écoute pas sur la bonne interface ou est bloqué par le pare-feu.

Postgres est-il en cours d'exécution?

Sudo service postgresql status

Postgres écoute-t-il sur TCP/5432 sur votre IP LAN ou sur 0.0.0.0 (toutes les interfaces)?

netstat -anpt | grep LISTEN

Il pourrait n'écouter que sur 127.0.0.1 (bouclage), ce qui signifie qu'il n'est pas accessible depuis le Mac.

S'il n'écoute pas ou est en boucle, vérifiez postgresql.conf pour listen_addresses:

http://www.postgresql.org/docs/9.1/static/runtime-config-connection.html

Existe-t-il un pare-feu sur la machine Ubuntu?

Assurez-vous d’autoriser au moins les connexions entrantes vers TCP/5432 à partir de l’IP du Mac.

GUFW facilite la configuration, mais cela peut aussi être fait avec iptables.

Autre référence pour la configuration Ubuntu:

https://help.ubuntu.com/community/PostgreSQL

9
Alain O'Dea

Vous avez probablement configuré les deux fichiers suivants
pg_hba.conf
Tout héberger tous 0.0.0.0/0 md5
postgresql.conf
listen_addresses = '*'

Vous devez vérifier si le port 5432 est ouvert: http://www.yougetsignal.com/tools/open-ports/

Si ce n'est pas le cas, ajoutez une règle à votre iptables:
iptables -A INPUT -s 0/0 -p tcp --dport 5432 -j ACCEPTER

0/0: Si vous voulez que quelqu'un y accède. 
Vous pouvez le changer pour une adresse IP spécifique ou une plage d'adresses IP.

8
Danish Khakwani

Dans Ubuntu 17.04, le port par défaut est 5433. Le fichier de contrôle postgresql.conf se trouvant dans le chemin /etc/postgresql/9.6/main

0

Vous avez autorisé Postgresql à accepter les demandes émanant d’un réseau externe. Pour ce faire, vous devez modifier deux fichiers situés au /etc/postgresql/{version_code}/main Le premier est pg_hba.conf, ouvrez et 

remplacez Host all all ::1/128 md5 par Host all all 0.0.0.0/0 md5

Le second est postgresql.conf, ouvert et

remplacez listen_address = 'localhost' par listen_address = '*'

Maintenant, redémarrez le serveur postgre.

0