詳解MySQL透過localhost無法連線資料庫的問題解決

黄舟
發布: 2017-03-27 14:03:33
原創
2239 人瀏覽過

下面小編就為大家帶來一篇完美解決MySQL透過localhost無法連接資料庫的問題。小編覺得蠻不錯的,現在就分享給大家,也給大家做個參考。一起跟著小編過來看看吧

問題:一台伺服器的PHP程式透過localhost位址無法連接資料庫,但如果設定為127.0.0.1則可以正常連接,連接其他資料庫伺服器也正常。 MySQL的權限設定正確,且透過mysql命令列客戶端可以正常連接資料庫。

分析:這是典型的socket沒有正確設定的情況。

連接MySQL資料庫有兩種方式:TCP/IP(一般理解的連接埠的那種)和Unix套接字(一般叫做socket或sock) 。大部分情況下,可以用localhost代表本機127.0.0.1,但是在MySQL連線時,二者不可混用,而且MySQL中權限設定中localhost與127.0.0.1也是分開設定的。設定為127.0.0.1時,系統透過TCP/IP方式連接資料庫;當設定為localhost時,系統會以socket方式連接資料庫。

解決:首先要看本機MySQL的socket套接字檔案在哪裡,查看指令是:

mysqld --verbose --help | grep socket
登入後複製

輸出結果顯示套接字檔案的位置,例如:這台伺服器顯示的是

socket      /var/run/mysqld/mysqld.sock
登入後複製

然後修改php的設定檔php.ini與之對應起來就好了。

找到這一項:

mysql.default_socket =
登入後複製

一般來說這一項都是空的,改成:

mysql.default_socket = /var/run/mysqld/mysqld.sock
登入後複製

這裡要寫上一步查詢到的文件,根據你的情況設定。至此php配置就修改好了,如果是CLI(命令列)方式或CGI方式的話,立即就生效,如果是FASTCGI方式,需要重啟一下fastcgi進程。

以上是詳解MySQL透過localhost無法連線資料庫的問題解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!