溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP無法通過localhost成功連接mysql怎么辦

發(fā)布時間:2020-06-08 11:03:12 來源:網(wǎng)絡(luò) 閱讀:592 作者:三月 欄目:MySQL數(shù)據(jù)庫

下面一起來了解下PHP無法通過localhost成功連接mysql怎么辦,相信大家看完肯定會受益匪淺,文字在精不在多,希望PHP無法通過localhost成功連接mysql怎么辦這篇短內(nèi)容是你想要的。

首先搞清楚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:

PHP無法通過localhost成功連接mysql怎么辦



但無法通過localhost連接mysql:

PHP無法通過localhost成功連接mysql怎么辦


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

PHP無法通過localhost成功連接mysql怎么辦

這里說套接字指的是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無法通過localhost成功連接mysql怎么辦

PHP無法通過localhost成功連接mysql怎么辦


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


查看mysql套接字路徑:

# cat /etc/my.cnf

PHP無法通過localhost成功連接mysql怎么辦


創(chuàng)建軟連接:

# ln -s /var/lib/mysql/mysql.sock /tmp 

PHP無法通過localhost成功連接mysql怎么辦


問題解決:

PHP無法通過localhost成功連接mysql怎么辦

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

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI