程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql能用localhost連接不能使用127.0.0.1連接的解決辦法

mysql能用localhost連接不能使用127.0.0.1連接的解決辦法

編輯:MySQL綜合教程

 

 

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

問題: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  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved