十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
下面一起來了解下PHP無法通過localhost成功連接MySQL怎么辦,相信大家看完肯定會受益匪淺,文字在精不在多,希望PHP無法通過localhost成功連接mysql怎么辦這篇短內(nèi)容是你想要的。
創(chuàng)新互聯(lián)公司"三網(wǎng)合一"的企業(yè)建站思路。企業(yè)可建設(shè)擁有電腦版、微信版、手機版的企業(yè)網(wǎng)站。實現(xiàn)跨屏營銷,產(chǎn)品發(fā)布一步更新,電腦網(wǎng)絡(luò)+移動網(wǎng)絡(luò)一網(wǎng)打盡,滿足企業(yè)的營銷需求!創(chuàng)新互聯(lián)公司具備承接各種類型的成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)項目的能力。經(jīng)過10多年的努力的開拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質(zhì)的服務(wù),并獲得了客戶的一致好評。
首先搞清楚mysql之連接localhost與127.0.0.1的區(qū)別:
127.0.0.1屬于TCP/IP連接,是通過網(wǎng)卡傳輸,依賴網(wǎng)卡,并受到網(wǎng)絡(luò)防火墻和網(wǎng)卡相關(guān)的限制。localhot屬于Unix socket方式連接,是不經(jīng)網(wǎng)卡傳輸!它不會解析成 IP,不受網(wǎng)絡(luò)防火墻和網(wǎng)卡相關(guān)的的限制,也不會占用網(wǎng)卡、網(wǎng)絡(luò)資源。一般設(shè)置程序時本地服務(wù)用localhost是最好的。
我的操作系統(tǒng)php使用127.0.0.1卻能連接mysql:

但無法通過localhost連接mysql:

嘗試phpmyadmin也遇到同樣的錯誤,不過也出現(xiàn)比較有價值的錯誤提示(套接字沒有正確設(shè)置):

這里說套接字指的是php跟mysql通信的一個.sock文件。
分析一下問題:
我的mysql使用的是mariadb5.5,通過yum安裝,所以問題出在mysql本身的可能性幾乎沒有。
通過phpinfo查找socket關(guān)鍵字,可以發(fā)現(xiàn)mysql.default_socket沒有設(shè)置默認(rèn)值,而pdo_mysql給出了默認(rèn)值,sock的位置


編輯php.ini給予mysql.default_socket默認(rèn)路徑,并且跟mysql的套接字文件存放路徑對應(yīng)按理就能解決問題。不過還有個偷懶的辦法,把mysql的套接字文件在php指定的默認(rèn)路徑創(chuàng)建軟連接,就無需修改php.ini了。
查看mysql套接字路徑:
# cat /etc/my.cnf

創(chuàng)建軟連接:
# ln -s /var/lib/mysql/mysql.sock /tmp

問題解決:

看完P(guān)HP無法通過localhost成功連接mysql怎么辦這篇文章后,很多讀者朋友肯定會想要了解更多的相關(guān)內(nèi)容,如需獲取更多的行業(yè)信息,可以關(guān)注我們的行業(yè)資訊欄目。