Bonjour, j'essaie d'exécuter un site Web qui m'a été envoyé mais après cela, cette erreur est apparue
connect to PostgreSQL server: FATAL: no pg_hba.conf entry for Host "4X.XXX.XX.XXX", user "userXXX", database "dbXXX", SSL off in C:\xampp\htdocs\xmastool\index.php on line 37
après Google il dit que j'ai juste besoin d'ajouter une entrée dans le fichier pg_hba.conf pour cet utilisateur particulier. c'est mon fichier pg_hba.conf.
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
local dbXXX userXXX md5
Host dbXXX userXXX XX.XXX.XXX.XXX md5
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 postgres 127.0.0.1/32 md5
#Host replication postgres ::1/128 md5
mais après cela, l'erreur persiste. J'ai redémarré mon serveur XAMPP plusieurs fois mais aucun changement n'apparaît. Merci d'avance
Ajoutez ou modifiez la ligne suivante dans votre postgresql.conf
:
listen_addresses = '*'
Ajoutez la ligne suivante comme première ligne de pg_hba.conf
. Il permet d'accéder à toutes les bases de données pour tous les utilisateurs avec un mot de passe crypté:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
Host all all 0.0.0.0/0 md5
Redémarrez Postgresql après l'avoir ajouté avec service postgresql restart
ou la commande équivalente pour votre configuration.
Cette solution fonctionne pour IPv4/IPv6
nano /var/lib/pgsql/data/pg_hba.conf
Host all all ::1/128 md5
Host all postgres 127.0.0.1/32 md5
puis redémarrez le service postgresql
/etc/init.d/postgresql restart
La façon dont j'ai résolu cela était:
Ajout de la ligne comme ci-dessous dans pg_hba.conf
:
hostnossl all all 0.0.0.0/0 trust
et cela a été modifié dans postgresql.conf
, comme montré:
listen_addresses = '*'
J'ai eu cette instance en cours d'exécution sur un Centos 7. et Postgres 9.5 dans un VM in Azure, étant donné cela était un POC (preuve de concept), vous ne voudrez pas vous connecter sans SSL dans votre environnement de production actuel.
Pour me connecter à l'instance que j'utilisais pgAdmin 4 sur macOS Sierra.
Installation de Fresh Postgres 9.5, Ubuntu.
La clé était le type de connexion local, car psql utilise une connexion socket de domaine.
pg_hba.conf
# TYPE DATABASE USER CIDR-ADDRESS METHOD
local all all md5
Host all all 0.0.0.0/0 md5
Ajoutez la ligne suivante au bas de pg_hba.conf
:
hostnossl all all 0.0.0.0/0 md5
Ajoutez/modifiez la ligne dans postgresql.conf
:
listen_addresses = '*'
ASSUREZ-VOUS QUE l'utilisateur qui se connecte a un mot de passe: (Exemple connectez l'utilisateur nommé postgres
)
une. Exécutez la commande psql
suivante avec le compte utilisateur postgres
:
Sudo -u postgres psql postgres
b. Définissez le mot de passe:
# \password postgres
J'ai eu la même erreur lorsque j'ai essayé de me connecter à une base de données locale à l'aide d'un tunnel SSH. Je l'ai résolu en changeant le nom d'hôte de localhost
en 127.0.0.1
.
Instructions pour les utilisateurs Debian.
Connectez-vous en tant qu'utilisateur posgres:
$ Sudo su - postgres
Obtenez l'emplacement de pg_hba.conf en interrogeant la base de données:
$ psql -c "SHOW hba_file;"
hba_file
-------------------------------------
/etc/postgresql/11/main/pg_hba.conf
(1 row)
Ouvrez pg_hba.conf:
nano /etc/postgresql/11/main/pg_hba.conf
Ajoutez la configuration où il est dit "Mettez votre configuration actuelle ici":
# TYPE DATABASE USER CIDR-ADDRESS METHOD
Host all all 0.0.0.0/0 md5
Déconnectez-vous de votre utilisateur:
$ exit
logout
Redémarrez votre serveur postgres pour que les modifications prennent effet:
$ Sudo systemctl restart postgresql
Trouvez le fichier de configuration correct:
su - postgres -c "psql -t -P format=unaligned -c 'show hba_file';"
Ajoutez ce qui suit à la fin du fichier:
local all all peer
Redémarrez ensuite votre application PostgreSQL:
/bin/systemctl restart postgresql*.service
Cela ci-dessous a fonctionné pour moi: (pg_hba.conf)
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
Host all all 127.0.0.1/32 trust
Host all all 0.0.0.0/0 trust
# IPv6 local connections:
Host all all ::1/128 trust
Host all all 0.0.0.0/0 trust
confiance
Autorisez la connexion sans condition. Cette méthode permet à toute personne pouvant se connecter au serveur de base de données PostgreSQL de se connecter en tant qu'utilisateur PostgreSQL de son choix, sans avoir besoin d'un mot de passe ou de toute autre authentification.
md5
Exiger que le client fournisse un mot de passe haché à double MD5 pour l'authentification.
référez-vous pour plus ici
Dans mon cas, j'ai dû ajouter la ligne exacte comme suggéré par les informations d'erreur. Impossible de le contourner en ajoutant "tous" les utilisateurs avec toutes les adresses IP comme règle. Maintenant, c'est comme:
PosgreSQL 10.5 sur CentOS 7.
# IPv4 local connections:
Host all all 127.0.0.1/32 md5
Host <db_name> postgres <my_client_machine_ip>/32 md5