2 votes

Impossible de se connecter à la base de données PostgreSQL via pgAdmin

J'ai donc installé une version minimale de Fedora 15 afin de créer un serveur pour une application web. J'ai également installé PostgreSQL 9.1 à partir de pgrpms.org. L'installation de PostgreSQL s'est bien déroulée. Localement, j'ai pu initdb, start et psql in pour changer le mot de passe de postgres.

J'ai installé pgAdmin sur un système Windows sur le même sous-réseau. Cependant, je ne parviens pas à me connecter.

J'ai édité /var/lib/pgsql/9.1/data/postgresql.conf pour définir listen_addresses = '*' . J'ai édité /var/lib/pgsql/9.1/data/pg_hba.conf pour permettre host all all 192.168.1.0/24 trust . J'ai également redémarré après les changements ( service postgresql-9.1 restart )

L'erreur dans pgAdmin est la suivante : impossible de se connecter au serveur : Connection timed out (0x0000274C/10060) Le serveur tourne-t-il sur l'hôte "192.168.1.110" et accepte-t-il les connexions TCP/IP sur le port 5432 ?

La réponse est oui. Je n'ai pas installé de pare-feu et j'ai désactivé celui de mon poste de travail Windows. Je suis en mesure de faire un ping et de me connecter au serveur par SSH. tcpdump montre que la tentative de connexion sur le port 5432 à partir de pgAdmin a bien lieu :

[root@cobalion yum.repos.d]# tcpdump port 5432
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
07:28:44.014920 IP totodile.mcs.local.54067 > 192.168.1.110.postgres: Flags [S], seq 3554805012, w in 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
07:28:47.023859 IP totodile.mcs.local.54067 > 192.168.1.110.postgres: Flags [S], seq 3554805012, w in 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
07:28:53.019464 IP totodile.mcs.local.54067 > 192.168.1.110.postgres: Flags [S], seq 3554805012, w in 8192, options [mss 1460,nop,nop,sackOK], length 0

Je ne sais plus où donner de la tête. À première vue, il semble que je devrais pouvoir me connecter. Des idées ? Je ne sais pas si je peux vérifier à l'intérieur d'un serveur postgresql en cours d'exécution les paramètres qui ont été chargés.

0voto

Amy Anuszewski Points 1228

Votre tcpdump confirme à peu près cela iptables est en train d'abandonner les paquets du côté du serveur. tcpdump inspecte les paquets avant qu'ils ne soient touchés par le pare-feu. Si le pare-feu ne laisse pas tomber les paquets et que postgres ne fonctionne pas, le noyau doit interrompre la tentative de connexion :

07:39:14.878008 IP localhost.12343 > localhost.35259: Flags [R.], seq 0, ack 1980582372, win 0, length 0

et vous obtiendrez immédiatement un refus de connexion plutôt qu'un dépassement de délai.

La seule autre chose à laquelle je peux penser est que vous avez fixé une limite de connexion absurdement basse sur le serveur et qu'il est déjà plein. Je n'ai jamais essayé de voir ce qui se passerait, mais j'ai l'impression qu'il rejetterait les connexions plutôt que de les retarder, d'après le comportement de divers sites web avec des erreurs de base de données que je rencontre tout le temps. Vous pouvez vérifier le journal de postgresql pour voir s'il mentionne la tentative de connexion.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X