php pdo 连接数据库报2002错误解决

今天在一台新的服务器上安装环境,装好后web服务器连接另一台服务器的数据库报Connection failed: SQLSTATE[HY000] [2002]

1、命令行下可以连接远程数据库排除了远程服务器问题

2、php pdo可以连接本地数据库,排除了php的pdo扩展问题

最后查出原因是SELinux的问题

修改如下:

setsebool -P httpd_can_network_connect_db=1

也可禁用selinux(不推荐)

SELinux 全称 Security Enhanced Linux (安全强化 Linux),是 MAC (Mandatory Access Control,强制访问控制系统)的一个实现,目的在于明确的指明某个进程可以访问哪些资源(文件、网络端口等)。

查看SELinux状态:

1、/usr/sbin/sestatus -v

SELinux status: enabled

2、getenforce #也可以用这个命令检查

关闭SELinux:

1、临时关闭(不用重启机器):

setenforce 0 #设置SELinux 成为permissive模式

#setenforce 1 设置SELinux 成为enforcing模式

2、永久生效:

修改/etc/selinux/config 文件

将SELINUX=enforcing改为SELINUX=disabled


下一篇:SD卡数据覆盖了还能恢复吗?