CentOS系统php外部数据库无法访问

mysql_connect和mysqli_connect均显示连接失败,但是用Navicat可以连接上数据库,所以判断应该是环境配置问题,找了很多办法都没解决。
最后在知乎上面找到答案了:

我猜题主用的应该是Apache吧,如果是的,那原因可能是这个:

CentOS默认情况下,SELinux是打开的,在SELinux打开的情况下,是不允许连接远程MySQL资源的,简单的做法是关闭SELinux:
setenforce 0

这种做法在线上肯定是不推荐的,可以用:
setsebool httpd_can_network_connect_db 1

设置apache允许访问外部MySQL资源。

瞬间感动落泪,原来大家都有掉到坑里过。