Me deparei com esse erro e foi devido a uma negação do SELinux. /usr/bin/httpd não tinha permissão para se conectar à porta 3306. Corrigi o problema com:
setsebool httpd_can_network_connect_db on
Parece funcionar muito bem e deve ser mais seguro do que apenas desabilitar o SELinux. Como o Avinash Meetoo aponta abaixo, você pode usar:
setsebool -P httpd_can_network_connect_db
Para fazer com que a alteração do selinux persista nas reinicializações.