十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶(hù) + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂(yōu)售后,網(wǎng)站問(wèn)題一站解決
下面一起來(lái)了解下PHP無(wú)法通過(guò)localhost成功連接mysql怎么辦,相信大家看完肯定會(huì)受益匪淺,文字在精不在多,希望PHP無(wú)法通過(guò)localhost成功連接mysql怎么辦這篇短內(nèi)容是你想要的。
首先搞清楚mysql之連接localhost與127.0.0.1的區(qū)別:
127.0.0.1屬于TCP/IP連接,是通過(guò)網(wǎng)卡傳輸,依賴(lài)網(wǎng)卡,并受到網(wǎng)絡(luò)防火墻和網(wǎng)卡相關(guān)的限制。localhot屬于Unix socket方式連接,是不經(jīng)網(wǎng)卡傳輸!它不會(huì)解析成 IP,不受網(wǎng)絡(luò)防火墻和網(wǎng)卡相關(guān)的的限制,也不會(huì)占用網(wǎng)卡、網(wǎng)絡(luò)資源。一般設(shè)置程序時(shí)本地服務(wù)用localhost是最好的。
我的操作系統(tǒng)php使用127.0.0.1卻能連接mysql:
但無(wú)法通過(guò)localhost連接mysql:
嘗試phpmyadmin也遇到同樣的錯(cuò)誤,不過(guò)也出現(xiàn)比較有價(jià)值的錯(cuò)誤提示(套接字沒(méi)有正確設(shè)置):
這里說(shuō)套接字指的是php跟mysql通信的一個(gè).sock文件。
分析一下問(wèn)題:
我的mysql使用的是mariadb5.5,通過(guò)yum安裝,所以問(wèn)題出在mysql本身的可能性幾乎沒(méi)有。
通過(guò)phpinfo查找socket關(guān)鍵字,可以發(fā)現(xiàn)mysql.default_socket沒(méi)有設(shè)置默認(rèn)值,而pdo_mysql給出了默認(rèn)值,sock的位置
編輯php.ini給予mysql.default_socket默認(rèn)路徑,并且跟mysql的套接字文件存放路徑對(duì)應(yīng)按理就能解決問(wèn)題。不過(guò)還有個(gè)偷懶的辦法,把mysql的套接字文件在php指定的默認(rèn)路徑創(chuàng)建軟連接,就無(wú)需修改php.ini了。
查看mysql套接字路徑:
# cat /etc/my.cnf
創(chuàng)建軟連接:
# ln -s /var/lib/mysql/mysql.sock /tmp
問(wèn)題解決:
看完P(guān)HP無(wú)法通過(guò)localhost成功連接mysql怎么辦這篇文章后,很多讀者朋友肯定會(huì)想要了解更多的相關(guān)內(nèi)容,如需獲取更多的行業(yè)信息,可以關(guān)注我們的行業(yè)資訊欄目。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。