Je suis assez nouveau sur PostgreSQL donc la question peut être simple. Alors. J'ai installé PostgreSQL 11 et pgAdmin 4 sur Fedora 29. Je peux me connecter à la base de données via un terminal ou AzureDataStudio, mais lorsque j'essaie de me connecter avec pgAdmin, j'obtiens cette erreur:
Incapable de se connecter au serveur:
impossible de se connecter au serveur: autorisation refusée Le serveur fonctionne-t-il sur l'hôte "127.0.0.1" et accepte-t-il les connexions TCP/IP sur le port 5432?
J'essaie tout ce qui peut être trouvé pendant 3 derniers jours, mais rien ne m'a aidé. Voici mes configurations:
# I set listen_address in postgresql.conf:
listen_addresses = '*'
# and these are my pg_hba.conf hosts:
local all all md5
Host all all 127.0.0.1/32 md5
Host all all 0.0.0.0/0 md5
Host all all ::1/128 md5
Host all all ::/0 md5
local replication all peer
Host replication all 127.0.0.1/32 ident
Host replication all ::1/128 ident
Y a-t-il un problème avec ces configurations? Ou existe-t-il une astuce que je devrais savoir pour me connecter via pgAdmin? Merci d'avance.
MISE À JOUR:
Je dois mentionner que je peux me connecter à la base de données via le terminal:
psql -h 127.0.0.1 -U postgres
La connexion via AzureDataStudio ne nécessite aucune donnée spécifiée. Il existe un formulaire comme celui-ci:
Et en remplissant le formulaire et en soumettant le bouton Connect, vous vous connecterez à la base de données. De plus, je peux me connecter à la base de données via le DataGrip de JetBrains avec le même formulaire et les mêmes données.
MISE À JOUR 2:
J'exécute PostgreSQL et pgAdmin sur ma machine locale qui exécute Fedora 30.
MISE À JOUR 3:
Voici les informations de mon logiciel complet:
// OS
Fedora 30 64-bit
// PostgreSQL
PostgreSQL 11.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 9.0.1 20190312 (Red Hat 9.0.1-0.10), 64-bit
// pgAdmin
Version 4.8
Copyright Copyright (C) 2013 - 2019, The pgAdmin Development Team
Python Version 3.7.3 (default, May 11 2019, 00:38:04) [GCC 9.1.1 20190503 (Red Hat 9.1.1-1)]
Flask Version 1.0.2
Application Mode Server
MISE À JOUR 3:
L'exécution de la commande Sudo netstat -nlp | grep 5432
Donne ce résultat;
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 16954/postmaster
tcp6 0 0 :::5432 :::* LISTEN 16954/postmaster
unix 2 [ ACC ] STREAM LISTENING 952579 16954/postmaster /var/run/postgresql/.s.PGSQL.5432
MISE À JOUR 4: La solution!
Enfin, avec l'aide de réponse de Jan Garaj , j'ai trouvé la solution. Tout d'abord, j'ai installé l'application SELinux Troubleshooter:
Sudo dnf install setroubleshoot
J'ai ensuite démarré l'utilitaire de résolution des problèmes. Ensuite, j'ai essayé de me connecter à la base de données via pgAdmin4. L'utilitaire de résolution des problèmes m'a donné 2 erreurs avec des solutions suggérées qui exécutaient ces commandes:
Sudo setsebool -P httpd_can_network_connect 1
Sudo setsebool -P httpd_can_network_connect_db 1
Vérifiez les journaux d'audit SELinux - https://fedoraproject.org/wiki/SELinux_FAQ#How_do_I_find_out_whether_SELinux_is_denying_access_for_any_software.3F
Je vois des dénis sur mon système CentOS 7 de test:
type=AVC msg=audit(1560101981.565:1942): avc: denied { name_connect } for pid=63140 comm="httpd" dest=5432 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:postgresql_port_t:s0 tclass=tcp_socket permissive=0
type=SYSCALL msg=audit(1560101981.565:1942): Arch=c000003e syscall=42 success=no exit=-13 a0=15 a1=7f741c06dfe0 a2=10 a3=7f742f9147b8 items=0 ppid=63139 pid=63140 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="httpd" exe="/usr/sbin/httpd" subj=system_u:system_r:httpd_t:s0 key=(null)
Je suppose que vous aurez un problème similaire dans votre Fedora - vous devrez modifier la politique SELinux utilisée.