您好,登錄后才能下訂單哦!
下面一起來了解下PHP無法通過localhost成功連接mysql怎么辦,相信大家看完肯定會受益匪淺,文字在精不在多,希望PHP無法通過localhost成功連接mysql怎么辦這篇短內容是你想要的。
首先搞清楚mysql之連接localhost與127.0.0.1的區別:
127.0.0.1屬于TCP/IP連接,是通過網卡傳輸,依賴網卡,并受到網絡防火墻和網卡相關的限制。localhot屬于Unix socket方式連接,是不經網卡傳輸!它不會解析成 IP,不受網絡防火墻和網卡相關的的限制,也不會占用網卡、網絡資源。一般設置程序時本地服務用localhost是最好的。
我的操作系統php使用127.0.0.1卻能連接mysql:
但無法通過localhost連接mysql:
嘗試phpmyadmin也遇到同樣的錯誤,不過也出現比較有價值的錯誤提示(套接字沒有正確設置):
這里說套接字指的是php跟mysql通信的一個.sock文件。
分析一下問題:
我的mysql使用的是mariadb5.5,通過yum安裝,所以問題出在mysql本身的可能性幾乎沒有。
通過phpinfo查找socket關鍵字,可以發現mysql.default_socket沒有設置默認值,而pdo_mysql給出了默認值,sock的位置
編輯php.ini給予mysql.default_socket默認路徑,并且跟mysql的套接字文件存放路徑對應按理就能解決問題。不過還有個偷懶的辦法,把mysql的套接字文件在php指定的默認路徑創建軟連接,就無需修改php.ini了。
查看mysql套接字路徑:
# cat /etc/my.cnf
創建軟連接:
# ln -s /var/lib/mysql/mysql.sock /tmp
問題解決:
看完PHP無法通過localhost成功連接mysql怎么辦這篇文章后,很多讀者朋友肯定會想要了解更多的相關內容,如需獲取更多的行業信息,可以關注我們的行業資訊欄目。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。