Tuve el mismo problema después de obtener una nueva caja CentOS 7, ejecutando SELinux. Podía conectarme a mi servidor MySQL DB remoto desde la línea de comandos, pero Drupal (y probar scripts PHP) no podía.
El problema resultó ser las políticas de seguridad de SELinux.
De forma predeterminada, la política httpd_can_network_connect_db está deshabilitado (lo que significa que su servidor web no puede póngase en contacto con una base de datos remota.)
Verifique esto a través de:
getsebool -a | grep httpd
Si httpd_can_network_connect_db está desactivado, habilítelo a través de:
setsebool -P httpd_can_network_connect_db 1
(El indicador -P hace que el cambio sea permanente, por lo que la configuración sobrevive a un reinicio).