Tout d'abord, testez si vous pouvez vous connecter à la base de données via psql :
psql -h ip_address -d name_of_the_database -U username
Si vous obtenez une erreur de connexion refusée, vous devez configurer quelque chose de mal et vérifier Que dois-je vérifier si la connexion à distance à PostgreSQL ne fonctionne pas ?
psql: could not connect to server: Connection refused Is the server running on host ip_address
Que dois-je vérifier si la connexion à distance à PostgreSQL ne fonctionne pas ?
-
Vérifiez la configuration de l'authentification dans
pg_hba.conf
Généralement situé sur Linux -
/etc/postgresql/version/main/pg_hba.conf
.Vous devez autoriser l'authentification pour le client pour une adresse IP spécifique à partir de toutes les adresses IP :# Database administrative login by Unix domain socket local all postgres peer # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 0.0.0.0/0 md5 # IPv6 local connections: host all all ::0/0 md5 #all ips host all all all md5
Plus d'informations sur la configuration de
pg_hba.conf
vous pouvez trouver dans la documentation . -
Ensuite, vous devez configurer l'écoute sur un port spécifique.
Vous devez trouver le
postgresql.conf
. Généralement situé/etc/postgresql/9.1/main/postgresql.conf
) fichier et changez la ligne avec listen_address de :#listen_address = ''
à (n'oubliez pas de supprimer # qui signifie commentaire) :
listen_address = '*'
-
Après chaque étape, vous devez redémarrer le service Postgresql :
sudo service postgresql restart
-
Après l'étape 2, vous devriez voir le port 5432 (ou 5433) dans l'adresse d'écoute après la commande netstat :
netstat -ntlp
-
Après cela, vous devez ouvrir le port pour PostgreSQL dans le pare-feu :
sudo ufw allow 5432
Vous pouvez vérifier les paramètres du pare-feu avec (vous devriez voir 5432 dans la liste) :
sudo ufw status
-
Si l'une des étapes précédentes ne fonctionne pas, vous devez vérifier si PostgreSQL ne s'exécute pas sur un port différent (généralement 5433) et répéter les étapes précédentes.
Cela se produit très souvent lorsque vous avez plusieurs versions de PostgreSQL en cours d'exécution ou que vous mettez à niveau la base de données et que vous avez oublié d'arrêter la version précédente de PostgreSQL.
Si vous avez des problèmes pour trouver les fichiers de configuration, vous pouvez vérifier ce fil Où sont mes fichiers postgres *.conf ? .