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卡数据覆盖了还能恢复吗?