Encontré este error y se debió a una denegación de SELinux. /usr/bin/httpd no tenía permiso para conectarse al puerto 3306. Corregí el problema con:
setsebool httpd_can_network_connect_db on
Parece funcionar muy bien y debería ser más seguro que simplemente deshabilitar SELinux. Como señala Avinash Meetoo a continuación, puedes usar:
setsebool -P httpd_can_network_connect_db
Para hacer que el cambio de selinux persista entre reinicios.