1. 程式人生 > >mysql能用localhost連線不能使用127.0.0.1連線的問題之一

mysql能用localhost連線不能使用127.0.0.1連線的問題之一

最近朋友的一個伺服器出現了一個奇怪的問題,弄了兩個星期沒有解決,在哥堅持不懈的努力下,終於解決了問題。發出來給需要的朋友。

問題:php程式連線mysql只能使用localhost,不能使用127.0.0.1

系統環境:centos5.5 64位系統  mysql 版本5.0.77 php版本5.2.17

以下為我解決問題的過程:

1、根據出錯的提示資訊“Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on '127.0.0.1'”  使用google搜尋mysql_connect 有人說是可能mysql_connect這個函式被禁用了,使用其它的連線,測試過不行。

2
、使用google搜尋mysql能用localhost連線,不能使用127.0.0.1連線,結果大部分人的解決辦法是: 修改my.cnf檔案,去掉skip_networking,bind_address=127.0.0.1,重啟mysql 故障依舊。 許可權問題,grant all privileges on *.* to 'root'@'127.0.0.1' identified by '密碼'; 然後flush privileges; 故障依舊。 修改/etc/hosts檔案,新增127.0.0.1 localhost 項,故障依舊。 3、檢視apache錯誤日誌,發現只記錄了檔案不存在之類的日誌資訊,未發現和訪問mysql資料連線檔案相關的專案。 4
、檢視mysql的日誌,未發現相關的連線專案。 5、最後我想起來要檢視一下系統日誌/var/log/messages 資訊太多,清理之: echo "" > /val/log/messages 然後訪問 資料連線測試檔案。發現瞭如下資訊: Nov 30 10:18:49 localhost setroubleshoot: SELinux 正在阻止http 守護程序連線到網路埠3306 For complete SELinux messages. run sealert -l a214e214-c710-4c84-9eb 2-12764f4b27de 結果就很明顯了,是selinux闖的禍,關閉selinux測試一下“/usr/sbin/setenforce 0
立刻關閉SELINUX ” 資料庫連線一切正常。 最後得出一個結論,請大家在安裝伺服器的時候,一定要selinux給關閉掉。下面給出方法: 如何關閉SeLinux 1、快速關閉SElinux,使用如下命令就可以: /usr/sbin/setenforce 0 立刻關閉SELINUX /usr/sbin/setenforce 1 立刻啟用SELINUX 2、加到系統預設啟動裡面 echo "/usr/sbin/setenforce 0" >> /etc/rc.local 3、可以編輯配置檔案達到同樣的目的 vi /etc/selinux/conf set SELINUX=disabled 摘自 獨自等待部落格:http://www.waitalone.cn/ 原文地址:http://www.waitalone.cn/post/mysqlselinux.html