php pdo 連接數(shù)據(jù)庫(kù)報(bào)2002錯(cuò)誤解決
今天在一臺(tái)新的服務(wù)器上安裝環(huán)境,裝好后web服務(wù)器連接另一臺(tái)服務(wù)器的數(shù)據(jù)庫(kù)報(bào)Connection failed: SQLSTATE[HY000] [2002]
1、命令行下可以連接遠(yuǎn)程數(shù)據(jù)庫(kù)排除了遠(yuǎn)程服務(wù)器問(wèn)題
2、php pdo可以連接本地?cái)?shù)據(jù)庫(kù),排除了php的pdo擴(kuò)展問(wèn)題
最后查出原因是SELinux的問(wèn)題
修改如下:
setsebool -P httpd_can_network_connect_db=1
也可禁用selinux(不推薦)
SELinux 全稱 Security Enhanced Linux (安全強(qiáng)化 Linux),是 MAC (Mandatory Access Control,強(qiáng)制訪問(wèn)控制系統(tǒng))的一個(gè)實(shí)現(xiàn),目的在于明確的指明某個(gè)進(jìn)程可以訪問(wèn)哪些資源(文件、網(wǎng)絡(luò)端口等)。
查看SELinux狀態(tài):
1、/usr/sbin/sestatus -v
SELinux status: enabled
2、getenforce #也可以用這個(gè)命令檢查
關(guān)閉SELinux:
1、臨時(shí)關(guān)閉(不用重啟機(jī)器):
setenforce 0 #設(shè)置SELinux 成為permissive模式
#setenforce 1 設(shè)置SELinux 成為enforcing模式
2、永久生效:
修改/etc/selinux/config 文件
將SELINUX=enforcing改為SELINUX=disabled
下一篇:SD卡數(shù)據(jù)覆蓋了還能恢復(fù)嗎?