今天在一台服务器配置了PHP的环境 Centos 7.4 + PHP7.2+Nginx 1.12.2

结果在连接数据库的时候卡了半天,使用PDO连接数据库,一直无法连上。纪录下排查的过程。

报错如下:

Uncaught PDOException: SQLSTATE[HY000] [2003] Can't connect to MySQL server on

首先,我使用mysql 客户端直接连接数据库,测试通过可以连接。

然后我在想是不是少了什么扩展,查看了下安装的扩展pdo,pdo_mysql扩展都有安装,还有一个扩展php72w-mysql也都有安装,证明扩展没问题,但是还是无法连接数据库。

我想是不是框架有问题,所以简单写了个测试脚本,就一行pdo连接数据库代码。在cli模式下执行,测试通过,连接成功。把同样的代码扔到框架入口文件执行,再次连接失败。

我意思到可能是cli模式下的问题.

后面搜索了下类似问题,尝试了好多种方法之后,关闭SELinux之后就连接成功了。

执行命令

setenforce 0

再次连接,测试成功。

问题是解决了,但是具体原因还不知道。道。