J'ai eu le même problème après avoir reçu une nouvelle boîte CentOS 7, exécutant SELinux. Je pouvais me connecter à mon serveur de base de données MySQL distant à partir de la ligne de commande, mais Drupal (et tester les scripts PHP) ne le pouvait pas.
Le problème s'est avéré être les politiques de sécurité de SELinux.
Par défaut, la stratégie httpd_can_network_connect_db est désactivé (ce qui signifie que votre serveur Web ne peut pas contacter une BD distante.)
Vérifiez ceci via :
getsebool -a | grep httpd
Si httpd_can_network_connect_db est désactivé, activez-le via :
setsebool -P httpd_can_network_connect_db 1
(L'indicateur -P rend la modification permanente, de sorte que le paramètre survit à un redémarrage.)