Erreur d'autorisation refusée lors de la connexion à la base de données via Localhost
Lors d'une tentative de connexion à une base de données MySQL à l'aide de PHP, les utilisateurs rencontrent souvent le redoutable Problème "Erreur : impossible de se connecter à MySQL. Numéro d'erreur de débogage : 2002 Erreur de débogage : autorisation refusée » lors de l'exécution du script localement, malgré une exécution réussie sur la ligne de commande.
Plonger dans le problème
En étudiant cette dichotomie déroutante, il apparaît que les politiques de sécurité de SELinux en sont le coupable sous-jacent. Par défaut, la politique "httpd_can_network_connect_db" est désactivée, empêchant le serveur web d'établir une connexion avec une base de données distante.
Vérification de la politique
Pour confirmer cette hypothèse, exécutez la commande suivante :
getsebool -a | grep httpd
Si « httpd_can_network_connect_db » est défini sur « Off », passez à la solution ci-dessous.
Résolution du problème
Pour remédier à la situation, la politique doit être activée en permanence. Ceci est réalisé à l'aide de la commande suivante :
setsebool -P httpd_can_network_connect_db 1
En permettant au serveur Web de communiquer avec la base de données distante, cette modification résout l'erreur d'autorisation refusée, ouvrant la voie à une connectivité transparente de la base de données depuis l'application Web.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!