J'essaie de me connecter à la base de données à l'aide du script suivant (cxn-test.php)
Quand je l'essaye sur le terminal
php cxn-test.php //Succès
Mais lorsque je l'essaye sur localhost, j'obtiens l'erreur suivante :
curl -s http://localhost/cxn-test.php
Erreur : Impossible de se connecter à MySQL. Numéro d'erreur de débogage : 2002 Message d'erreur de débogage : Autorisation refusée
C'est un problème étrange, cela ne fonctionne pas sur localhost mais fonctionne bien sur la ligne de commande.
J'ai rencontré le même problème après avoir obtenu une nouvelle boîte CentOS 7 exécutant SELinux. Je peux me connecter au serveur de base de données MySQL distant via la ligne de commande, mais Drupal (et le script PHP de test) ne peut pas se connecter.
Le problème a finalement été causé par la politique de sécurité de SELinux.
Par défaut, la politiquehttpd_can_network_connect_dbest désactivée (ce qui signifie que votre serveur Webne peut pascontacter la base de données distante).
Vérifiez avec la commande suivante :
getsebool -a | grep httpd
Si httpd_can_network_connect_db est désactivé, veuillez l'activer avec la commande suivante :
(L'indicateur -P rend les modifications permanentes, de sorte que les paramètres restent en vigueur lors des redémarrages.)