1 votes

Impossible de se connecter à postgresql sur la machine locale en utilisant IP + pgadmin

Sous Ubuntu 12.04, j'ai installé pg et pgadmin.

Je peux accéder à localhost/phppgadmin en utilisant le navigateur.

Je peux aussi le faire via : IP/phppgadmin.

Cependant, je ne peux pas utiliser le numéro IP pour me connecter à pg en utilisant pgadmin.

Il signale que le serveur n'écoute pas.

Des idées à ce sujet ?

1voto

edmz Points 111

Par défaut, PostgreSQL n'écoute que sur le socket UNIX local. Pour activer le point de terminaison TCP/IP, décommentez dans votre fichier postgresql.conf :

listen_addresses = '*'

Où '*' - écoute sur toutes les interfaces. Ou mettez votre numéro IP ici si vous voulez écouter uniquement sur une IP spécifique.

http://www.postgresql.org/docs/9.1/static/runtime-config-connection.html#GUC-LISTEN-ADDRESSES

1voto

ryan Points 523

Quel est le message d'erreur que vous obtenez de PGAdmin? Y a-t-il quelque chose dans les journaux (/var/log/postgresql.log ou similaire)?

Je suppose que vous n'avez pas de paramètre d'authentification correct dans votre pg_hba.conf, car PostgreSQL permet par défaut uniquement aux utilisateurs locaux de se connecter via des sockets Unix, pas via TCP comme vous le souhaitez. Vous pourriez avoir besoin de quelque chose comme

host       all  all  0.0.0.0  pam

ou

hostssl       all  all  0.0.0.0  md5

dans le pg_hba.conf - consultez le lien ci-dessus pour la documentation appropriée :)

0voto

user112760 Points 31

Merci aux différents utilisateurs qui m'ont aidé à cerner le problème. En fait, il y avait plusieurs problèmes. Je les ai résumés ici sous forme de réponse complète et j'espère que cela pourra bénéficier à quelqu'un d'autre.

  1. comme l'a dit RJS, j'ai dû mettre listen_addresses pour accepter plusieurs adresses IP. Cela avait été initialement fait mais plus tard j'ai réalisé que la ligne était commentée avec un # ce qui signifie qu'elle était en commentaire. J'ai donc enlevé le commentaire.

  2. Même après avoir arrêté le serveur PG, pg_lsclusters montrait qu'un service était toujours en cours d'exécution. Donc je ne pouvais pas le redémarrer car il signalait qu'il était déjà en cours d'exécution.

  3. Ensuite, en utilisant ps, j'ai découvert qu'un programme connexe appelé pgpool utilisait le même port et ne laissait pas le port par défaut 5432 être utilisé par PG. Alors je l'ai arrêté depuis le terminal en utilisant sudo pgpool stop.

  4. Ensuite j'ai redémarré le serveur postgres et tout était normal !

    En cherchant une réponse, un bénévole RhodiumToad sur IRC (#postgresql) m'a dit que le pooling n'était pas nécessaire pour ce que je faisais. On m'a demandé pourquoi je l'avais. La chose étrange est que je ne l'ai jamais installé. Peut-être que pgpool a été installé en plus de quelque chose.

  5. Un des autres problèmes était que je ne pouvais pas démarrer pgadmin sur Windows et me connecter correctement. Il manquait un libpq.dll. Apparemment (vous trouverez un autre post sur stackoverflow à ce sujet), le fichier était présent à quelques endroits sur Win XP. J'ai donc copié tous les fichiers DLL de postgres sur Windows/System32 et cela a résolu le problème.

C'est tout ! J'espère que cela aidera.

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