Ik had hetzelfde probleem nadat ik een nieuwe CentOS 7-box kreeg met SELinux. Ik kon vanaf de opdrachtregel verbinding maken met mijn externe MySQL DB-server, maar Drupal (en PHP-scripts testen) niet.
Het probleem bleek het SELinux-beveiligingsbeleid te zijn.
Standaard is het beleid httpd_can_network_connect_db is uitgeschakeld (wat betekent dat uw webserver niet kan contact opnemen met een externe database.)
Controleer dit via:
getsebool -a | grep httpd
Als httpd_can_network_connect_db uit staat, schakel het dan in via:
setsebool -P httpd_can_network_connect_db 1
(De vlag -P maakt de wijziging permanent, zodat de instelling een herstart overleeft.)