Jag hade samma problem efter att ha skaffat en ny CentOS 7-box som kör SELinux. Jag kunde ansluta till min fjärrstyrda MySQL DB-server från kommandoraden, men Drupal (och testa PHP-skript) kunde inte.
Problemet visade sig vara SELinux säkerhetspolicyer.
Som standard är policyn httpd_can_network_connect_db är inaktiverad (vilket betyder att din webbserver inte kan kontakta en fjärrdatabas.)
Kontrollera detta via:
getsebool -a | grep httpd
Om httpd_can_network_connect_db är Av, aktivera det via:
setsebool -P httpd_can_network_connect_db 1
(Flaggan -P gör ändringen permanent, så inställningen överlever en omstart.)