Jeg havde det samme problem efter at have fået en ny CentOS 7-boks, der kører SELinux. Jeg kunne oprette forbindelse til min eksterne MySQL DB-server fra kommandolinjen, men Drupal (og teste PHP-scripts) kunne ikke.
Problemet viste sig at være SELinux sikkerhedspolitikker.
Som standard er politikken httpd_can_network_connect_db er deaktiveret (hvilket betyder, at din webserver ikke kan kontakt en ekstern DB.)
Tjek dette via:
getsebool -a | grep httpd
Hvis httpd_can_network_connect_db er slået fra, skal du aktivere det via:
setsebool -P httpd_can_network_connect_db 1
(-P-flaget gør ændringen permanent, så indstillingen overlever en genstart.)