web-dev-qa-db-fra.com

Impossible de se connecter à Postgresql sur le port 5432

PostgreSQL 9.3 est installé sur un serveur exécutant Ubuntu Server 14.04.

Si je ssh dans le serveur via un terminal, je peux me connecter avec psql. Mais lorsque j'essaie de configurer pgAdmin III pour qu'il établisse la connexion à distance, je reçois:

Le serveur n'écoute pas Le serveur n'accepte pas les connexions: le fichier Les rapports de la bibliothèque de connexions n'ont pas pu se connecter au serveur: Connexion Refusé Est-ce que le serveur s'exécute sur l'hôte "172.24.3.147" et accepte Connexions TCP/IP sur le port 5432?

Quand je cours sur le serveur service postgresql status il me donne:

9.3/main (port 5432): online

Alors bien sûr, il me manque quelque chose d'important ici.

MODIFIER

Lors de l'exécution de netstat -na sur le serveur, je reçois (partie pertinente, je suppose):

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN     
tcp        0      0 172.24.3.147:22         172.24.3.240:61950      ESTABLISHED
tcp        0      0 172.24.3.147:22         172.24.3.240:60214      ESTABLISHED
17
Rodrigo

Vous devez éditer postgresql.conf fichier et changer de ligne avec 'listen_addresses'.

Ce fichier se trouve dans le répertoire /etc/postgresql/9.3/main.

Par défaut, Ubuntu config n'a autorisé que l'interface localhost (ou 127.0.0.1), ce qui est suffisant pour utiliser lorsque chaque client PostgreSQL fonctionne sur le même ordinateur que le serveur PostgreSQL. Si vous voulez connecter le serveur PostgreSQL depuis d'autres ordinateurs, vous devez modifier cette ligne de configuration de cette manière:

listen_addresses = '*'

Ensuite, vous avez également le fichier pg_hba.conf file. Dans ce fichier que vous avez défini, à partir de quels ordinateurs vous pouvez vous connecter à ce serveur et quelle méthode d'authentification vous pouvez utiliser. Habituellement, vous aurez besoin d'une ligne similaire:

Host    all         all         192.168.1.0/24        md5

S'il vous plaît, lisez les commentaires dans ce fichier ...

MODIFIER:

Après l'édition de postgresql.conf et de pg_hba.conf, vous devez redémarrer le serveur postgresql.

EDIT2: Fichiers de configuration en surbrillance.

27
Jan Marek

Avait le même problème avec psql via la connexion de ligne de commande et pgAdmin ne se connectant pas sur RDS avec AWS. J'avais mon RDS réglé sur accessible publiquement. Je me suis assuré que ma liste de contrôle d'accès et mes groupes de sécurité étaient bien ouverts et posaient toujours problème. J'ai donc procédé comme suit: Sudo find . -name *.conf Puis Sudo nano ./data/pg_hba.conf conf file Host all all 0.0.0.0/0 md5 et pgAdmin m'a automatiquement connecté. 

Cela a également fonctionné dans le fichier pg_hba.conf Host all all md5 sans adresse IP et cela a également fonctionné avec mon adresse IP Host all all <myip>/32 md5

En remarque, mon RDS était dans mon VPC par défaut. J'avais une instance RDS identique dans mon VPC autre que par défaut avec des paramètres de groupe de sécurité, d'ACL et de groupe de sécurité identiques à ceux d'un VPC par défaut et je ne pouvais pas le faire fonctionner. Je ne sais pas pourquoi mais c'est pour un autre jour. 

0
max56

N'oubliez pas de vérifier également les paramètres du pare-feu. après avoir vérifié et revérifié mes fichiers pg_hba.conf et postgres.conf, j'ai finalement découvert que mon pare-feu annulait tout et bloquait donc les connexions

0
Alex

Vous devrez probablement ouvrir le port pour y accéder sur votre réseau local (ou à l'extérieur de celui-ci) ou associer l'adresse réseau au port (faites en sorte que PostgreSQL écoute sur votre réseau local plutôt que sur localhost).

0
Daniel Kravetz