關于MySQL通過localhost無法連接127.0.0.1可以連接的問題>>>在CentOS6.3 X64上新編譯安裝的MariaDB數據庫,編譯安裝需要相當長的一段時間,如果你的機器不是很好的話.
安裝后使用探針進行PHPINFO測試的時候,發現默認的localhost不能連接MariaDB數據庫,但是通過127.0.0.1又可以連接,表示很郁悶,最初想到的是:是不是linux服務器上的hosts文件問題.
于是就 echo “127.0.0.1 localhost”>>/etc/hosts && sync //Vevb.com
結果還是一樣,localhost無法連接127.0.0.1可以連接.
在網上看到有朋友說是selinux的問題,但一般系統安裝好了后我都是已經將selinux 設置為permissive 模式的,于是有進一步設置 為disabled模式,結果也是一樣.
最后發現是PHP和MySQL之間的關系,我們只要修改PHP.INI的配置就可以了.
默認編譯安裝的php.ini配置文件里不會指定 mysqld.sock 文件地址,而其便從默認以為的在/var/run/mysqld/mysqld.sock 進行查找,而編譯安裝的MariaDB 安裝的時候將mysqld.sock文件制定在/usr/local/mysql/tmp目錄下,而PHP通過localhost連接mysql的時候恰恰又是要使用mysqld.sock的方式進行連接,因此,上面問題的出現我們就清楚來路的.
下面我們通過查看本機的mysqld.sock文件具體存放位置,將其寫入php.ini的配置里面就ok了.
MySQL利用localhost無法連接問題解決辦法(127.0.0.1能連接),最保守的方法就是先執行 sync 命令進行數據寫入,然后重啟apache2服務器,一般來說,不用執行這兩個命令也行的,本人已經直接使用,不能再做測試.
新聞熱點
疑難解答