FAQ系列|啟用SELinux後,PHP連線MySQL異常
同事報告一起奇怪的現象,一個最簡單的測試PHP程式碼,在測試環境很正常,但是在正式環境下,無論用何種方式(tcp/ip、unix socket)都無法連線mysql。
我協助檢視了下,確實如此,無論是指定IP、埠的tcp/ip方式連線,或者是用unix socket方式連線,報錯資訊都類似:
Could not connect: Can`t connect to MySQL server on `MYSQL.SERVER` (13)
無論如何修改MySQL的授權,或者調整php.ini中關於MySQL的設定,或者修改MySQL的監聽網口,都無法解決。
而如果用命令列人工連線MySQL,則一切正常。
問題看起來像是php(with apache)不被允許連線MySQL,但是防火牆也沒有限制。想來想去,唯有SELinux的因素會導致這個問題。
getsebool -a|grep -i httpd
可以看到這裡設定了httpd程式的許可模式,再仔細看一下,有一個選項:
getsebool -a|grep -i httpd_can_network_connect httpd_can_network_connect --> off
現在明白了,原來是SELinux限制了httpd對外訪問的許可權。將其開啟即可:
setsebool -P httpd_can_network_connect=1
如果對SELinux不熟悉,也可以直接修改系統配置檔案 /etc/sysconfig/selinux,全域性關閉:
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. #SELINUX=enforcing #把設定改為disabled SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted
然後重啟作業系統,即可生效。
或者,直接執行命令,可線上生效:
[root@imysql~]# setenforce 0 setenforce: SELinux is disabled
本文轉自葉金榮51CTO部落格,原文連結:http://blog.51cto.com/imysql/1879758,如需轉載請自行聯絡原作者
相關文章
- mysql 連線異常MySql
- PHP系列(七)PHP錯誤異常處理PHP
- druid連線池常見異常UI
- PostgreSQL 連線 超時異常SQL
- milvus 異常——無法連線
- echart折線圖異常多出一條連線線
- DataIntegrityViolationException異常:java利用mymatis連線資料庫異常AIExceptionJava資料庫
- TCP連線狀態異常記錄TCP
- 某客戶系統tomcat連線池連線異常Tomcat
- PHP連線MySql資料庫PHPMySql資料庫
- FAQ系列|磁碟空間滿了之後MySQL會怎樣MySql
- mac開啟mysql,navicat連線mysqlMacMySql
- FAQ系列|MySQL索引之聚集索引MySql索引
- 資料庫連線異常故障報告資料庫
- 資料庫連線異常處理思路資料庫
- gitea連線ldap經常出現未啟用狀態GitLDA
- zk 啟用kerberos後 hbase連線不上問題ROS
- 簡單的php連線mysql類PHPMySql
- mysql開啟遠端連線MySql
- airpods連線win10系統後音量異常如何解決AIWin10
- (轉)PHP連線資料庫之PHP連線MYSQL資料庫程式碼PHP資料庫MySql
- mysql階段04 連線工具, 連線方式, 啟動關閉mysqlMySql
- 連線MySQL時出現1449與1045異常解決辦法MySql
- PHP 異常類 ExceptionPHPException
- mysql連結很多,批量刪除異常程式processlistMySql
- 精PHP與MYSQL資料庫連線PHPMySql資料庫
- PHP連線、查詢MySQL資料庫PHPMySql資料庫
- PHP同時操作多個MySQL連線PHPMySql
- php連線mysql資料庫基礎PHPMySql資料庫
- 阿里雲異常流量及異常網路連線的安全解決過程阿里
- MySQL 的啟動和連線方式MySql
- 異常連線之未授權連線,行為風險分析的有效實踐
- MySQL伺服器異常關閉,重啟後,無法啟動----因為磁碟空間滿MySql伺服器
- MySQLNonTransientConnectionException資料庫連線異常MySqlException資料庫
- win10網路連線配置異常如何解決_win10系統網路連線配置異常的解決教程Win10
- PHP 核心 - 異常處理PHP
- PHP錯誤和異常PHP
- 連線數從異常到 300 到 5(RDS MySQL 的一個大坑•後記)MySql