国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP中使用localhost連接Mysql不成功的解決方法

2024-05-04 23:25:07
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了PHP中使用localhost連接Mysql不成功的解決方法,但使用127.0.0.1則沒有問題,本文也可以說是對連接MySQL主機使用127.0.0.1與localhost的區別的講解,需要的朋友可以參考下
 
 

發現問題

昨天在幫同事編譯安裝Linux環境時,遇到一個問題:
WEB服務器是apache,數據庫是MySQL。

于是寫了一個測試連接數據庫的PHP頁面:

復制代碼代碼如下:
$mysql = mysql_connect('localhost','root','');

 

打開 http://localhost/test.php 測試

提示:Can't connect to local MySQL server through socket...

檢查環境正常

以為是數據庫沒有啟動,于是查看一下進程,MySQL在進程里,重啟了一下MySQL.

使用mysql -u root -p 可以進入MySQL操作界面

直接使用/usr/local/php5/bin/php /web/test.php執行可以連上數據庫
apache也重啟了,一樣無效

疑點:為何網頁執行失敗,命令執行卻成功

這下就郁悶了,使用php命令直接執行就成功,通過網頁執行就失敗。難道是apache導致?網上搜索了大堆資料也沒找到解決方案,重新編譯安裝apache問題依舊。

把localhost改成127.0.0.1成功

把localhost改成127.0.0.1后竟然連接成功了,開始陷入思考困局:localhost失敗127.0.0.1卻成功?

ping localhost 地址是127.0.0.1沒錯

打開hosts加入

復制代碼代碼如下:

127.0.0.1 qttc

使用qttc當主機連接也正常,唯獨就不認localhost。

 

localhost連接方式不同導致

為了了解PHP連接數據庫時,主機填寫localhost與其它的區別閱讀了大量資料,最后得知:

當主機填寫為localhost時mysql會采用 unix domain socket連接
當主機填寫為127.0.0.1時mysql會采用tcp方式連接
這是linux套接字網絡的特性,win平臺不會有這個問題

解決方法

在my.cnf的[mysql]區段里添加

復制代碼代碼如下:
protocol=tcp

保存重啟MySQL,問題解決!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 闽清县| 雷州市| 鲜城| SHOW| 青岛市| 佛坪县| 沐川县| 莒南县| 济南市| 柘荣县| 宜良县| 喀什市| 哈密市| 乐业县| 广南县| 阳信县| 上高县| 交口县| 石棉县| 蓝田县| 星子县| 西安市| 洪泽县| 鹰潭市| 东阿县| 华蓥市| 靖边县| 富平县| 霍林郭勒市| 闽侯县| 西华县| 沙洋县| 南康市| 清徐县| 海门市| 云安县| 东丽区| 运城市| 阿拉善盟| 高要市| 翁源县|