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 10/04/2018 23:15:36

robinson
Membre

Erreur (0x0000274D/10061)

Bonjour,

Je poste en désespoir de cause à propos de la fameuse erreur de routage (0x0000274D/10061) qui arrive à beaucoup de monde apparemment :

"Unable to connect to server:

could not connect to server: Connection refused (0x0000274D/10061)
Is the server running on host "172.24.1.1" and accepting
TCP/IP connections on port 5432?"

Je souhaite me connecter via wifi depuis mon pc sous windows 7 avec pg admin (ou qgis, mais c'est pareil) à un serveur postgresql installé sur un raspberry (avec l'excellente distribution raspbian docker pour une application de serveur embarqué webSIG, j'ai nommé géopoppy : https://github.com/jancelin/geo-poppy/wiki). Je précise à ce niveau que même si j'ai une certaine culture numérique je ne suis pas administrateur réseau et que je ne comprend pas bien l'architecture de tous les ports et adresses trouvées sur les deux terminaux avec netstat et ipconfig.
J'ai déjà réussi à me connecter au serveur la première fois (ou j'ai d'ailleurs créé ma base). Le lendemain, après redémarrage, cette erreur est apparue. Je n'ai eu aucune erreur lors de l'installation de postgresql et j'arrive très bien à profiter de la fonction routeur internet du raspberry (même après l'apparition du message d'erreur).
J'ai parcouru une multitude de posts la concernant, et essayé le plupart des techniques recommandées :
- J'ai essayé plusieurs fois de tout réinstaller : le serveur et postgresql (j'ai bien supprimé le répertoire data et les clés registre), mais l'erreur finissait par réapparaitre.
- J'ai essayé une multitude de configurations pour les fichiers pg_hba.conf et posgresql.conf
- J'ai bien sûr relancé le service postgresql à chaque essai.
- J'ai paramétré mon pare-feu ouvert dans les deux sens pour le port 5432, et autorisé le programme postgres pour toutes les connexions.
- J'ai même essayé la technique de l'optimisation de l'allocation de la RAM dans le fichier posgresql.conf

J'ai bien lu ce post : https://forums.postgresql.fr/viewtopic.php?id=4665 mais je n'ai pas compris toutes les commandes. Je les ai testées mais certaines n'étaient pas reconnues.
Je suis à court d'idée et ça fait déjà quatre jours complets que je suis dessus...

Les paramètres de mon pc :
Carte réseau sans fil Connexion réseau sans fil 2 :
   Suffixe DNS propre à la connexion. . . :
   Adresse IPv6 de liaison locale. . . . .: fe80::c441:7bc3:635:101c%20
   Adresse IPv4. . . . . . . . . . . . . .: 172.24.1.102
   Masque de sous-réseau. . . . . . . . . : 255.255.255.0
   Passerelle par défaut. . . . . . . . . : 172.24.1.1

Les paramètres du serveur raspberry :
wlan0
inet addr:172.24.1.1

Voici les dernières versions de mes fichiers :
pg_hba.conf :

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
host    replication     all             127.0.0.1/32            md5
host    replication     all             ::1/128                 md5
host    all                all                172.24.1.102/32            md5

postgresql.conf :
# - Connection Settings -

listen_addresses = '*'        # what IP address(es) to listen on;
                    # comma-separated list of addresses;
                    # defaults to 'localhost'; use '*' for all
                    # (change requires restart)
port = 5432                # (change requires restart)


Merci d'avance si vous avez une piste!

Cordialement.

Hors ligne

#2 10/04/2018 23:36:48

rjuju
Administrateur

Re : Erreur (0x0000274D/10061)

Votre raspbian est également votre routeur?

Sinon, vous pouvez vérifier plusieurs choses sur le serveur :


- est-ce que postgres à l'air d'être démarré


sudo ps aux |grep postgre


- est-ce que le port est bien ouvert


sudo netstat -taupen |grep 5432


- Est-ce que votre serveur a un firewall ?


sudo iptables -L -n

Hors ligne

#3 11/04/2018 09:10:25

ruizsebastien
Membre

Re : Erreur (0x0000274D/10061)

bonjour,

Je vois que dans votre pg_hba.conf vous n'autorisez que les connexions local : host    all             all             127.0.0.1/32            md5
127.0.0.1 est l'équivalent de localhost.
Donc dans l'état actuel vous ne pouvez pas vous connecter à distance sauf en ipv6.

Essayez un pg_hba.conf comme ceci :

#connexion socket unix :
local   all         all                                      md5
#connexion TCP/IP ipv4 :
host    all         all         0.0.0.0         0.0.0.0          md5
#connexion TCP/IP ipv6 :
host    all         all               ::1/128                md5


Cordialement,

Sébastien.

Hors ligne

#4 11/04/2018 16:41:58

robinson
Membre

Re : Erreur (0x0000274D/10061)

Tout d'abord merci pour vos réponses, c'est fort sympathique.
@rjuju Effectivement cette distribution permet d'être routeur internet en plus d'y stocker une base de donnée. Néanmoins je déconnecte le cable ethernet quant je veux travailler dessus, au cas ou ça détourne l'architecture (c'est un peu stupide mais je commence à devenir parano).
Concernant les lignes de commande :
- postgres est bien démarré sur le serveur, de toute façon le docker est bien construit et je le relance régulièrement. La commande sudo ps aux |grep postgre renvoie :
pirate 1489 0.0 0.2 4192 1784 tty1 S+ 13:49 0:00 grep postgre
- Par contre, il n'y a visiblement aucun port 5432... Le port indiqué est 53, ce qui ne me convient pas car postgresql (pgadmin) n'accepte que les ports au dessus de 1024...
- Du coup j'ai bien essayé de reconfigurer les ports avec iptable, mais le pare-feu n'est pas installé et il m'est impossible d'installer le package pour l'instant (E: unable to locate package). J'ai essayé plusieurs techniques mais j'ai l'impression que le package n'est pas compatible avec hypriot OS.

@ruizsebastien
J'ai essayé la configuration proposée mais visiblement la syntaxe n'est pas bonne, postgresql ne se lançant pas. Apparement il ne reconnait pas les adresses 0.0.0.0
Mais ça m'a quand même mis sur une piste, et après avoir lu (https://www.postgresql.org/docs/9.1/sta … -conf.html) j'ai essayé :
host    all             all             172.24.1.102/32         md5
host    all                all                172.24.1.1/32            md5
sans succès, mais du coup je pense que c'est à cause du port comme indiqué plus tôt.

Merci pour vos réponses,  je continue à chercher sur la piste du port et je vous tiens au courant.

Hors ligne

#5 11/04/2018 18:24:00

gleu
Administrateur

Re : Erreur (0x0000274D/10061)

0.0.0.0 est à remplacer par 0.0.0.0/0


Guillaume.

Hors ligne

#6 11/04/2018 19:19:38

robinson
Membre

Re : Erreur (0x0000274D/10061)

Effectivement ça marche mieux en précisant /0 (j'imagine que c'est pour accepter tout type de masques CIDR). Mais bon comme je le pressentais dans mon post précédent, un nmap m'a bien renseigné que mon port était fermé, et j'essaie désormais de le paramétrer avec iptable. Donc j'imagine que ça n'a plus grand chose à voir avec postgresql...
Merci pour votre aide!

Hors ligne

#7 12/04/2018 15:05:28

robinson
Membre

Re : Erreur (0x0000274D/10061)

Bonjour,

Après une analyse des ports plus approfondie (en jouant avec 'docker ps -a' pour voir les ports des containers, 'netstat -t -a -u -p -e -n) pour voir les connections réseaux et 'nmap -p numéroport adresseip' pour vérifier l'ouverture des port, il apparait que :
- Aucune adresse ip n'est affectée au docker postgis avec docker ps (mais j'imagine que du coup il doit prendre des paramètres par défaut ou quelque chose dans ce goût là).
- Le port 53 est bien ouvert pour l'adresse locale visée.

Donc je me retrouve bien dans un problème d'assignation de port non compatible avec postgresql. Quelqu'un saurait comment on fait pour affecter un port supérieur à 1024?

Hors ligne

#8 12/04/2018 21:27:06

rjuju
Administrateur

Re : Erreur (0x0000274D/10061)

Vous pouvez demander à docker d'exposer le port sur le système hôte: https://docs.docker.com/engine/referenc … er/#expose

Hors ligne

#9 13/04/2018 15:24:37

dverite
Membre

Re : Erreur (0x0000274D/10061)

Par contre, il n'y a visiblement aucun port 5432... Le port indiqué est 53, ce qui ne me convient pas car postgresql (pgadmin) n'accepte que les ports au dessus de 1024...

Le port indiqué par quoi? Pourquoi s'intéresser au port 53, qui est le port du service DNS?

En fait les éléments de la discussion laissent penser que postgres ne se lance pas. Par exemple le résultat de ps:
quand ps aux|grep postgre ne trouve que le processus grep, ça veut dire que postgres ne tourne pas ou au mieux qu'on ne regarde pas au bon endroit. Dans le cas d'une recherche de problème, il ne faut pas faire comme si c'était positif et passer à la suite.

Il faudrait regarder les logs dans /var/log/postgresql ou équivalent suivant la distrib. Si postgres s'arrive pas à se lancer ça doit être écrit dedans avec les messages d'erreur correspondant.

Hors ligne

#10 13/04/2018 16:59:49

robinson
Membre

Re : Erreur (0x0000274D/10061)

Bonjour,

Je suis allé voir du côté de d'EXPOSE et c'était une bonne piste. Il y a effectivement là des commandes qui permettent de lister/d'assigner des ports au lancement d'un docker
https://stackoverflow.com/questions/221 … -in-docker
https://forums.docker.com/t/how-to-expo … ner/3252/5

Du coup j'ai fait un :
docker stop container
Puis un :
docker run -d -p port
Pour relancer le container avec le bon port. Et ça a marché.
Merci beaucoup pour les conseils, je pense que seul j'y aurai passé quelques jours de plus...
@dverite : le port indiqué par le netstat taupen. Mais effectivement c'est bien le port du DNS, j'ai confondu avec ceux du ps -a, qui n'étaient pas affichés.
Mais le service postgres était bien lancé, le docker ps était formel (et j'ai vérifié dans les logs, aucun problème). C'était donc bien un problème de routage.

Encore merci!

Hors ligne

Pied de page des forums