主頁 > 知識庫 > MySQL數(shù)據(jù)庫主機127.0.0.1與localhost區(qū)別

MySQL數(shù)據(jù)庫主機127.0.0.1與localhost區(qū)別

熱門標簽:深圳 陜西400電話如何申請 商家地圖標注哪個好 遵義地圖標注app 承德電腦地圖標注 外呼系統(tǒng)從哪買 德惠市地圖標注 合肥營銷外呼系統(tǒng)收費 地圖標注賺錢真假

可能有很多朋友都會碰到一個問題不知道127.0.0.1與localhost有什么區(qū)別,但是有的時間會發(fā)現(xiàn)使用localhost連接不了,但是改成127.0.0.1即可了連接了,那么他們會有什么區(qū)別呢,下面我給大家介紹。

  1. mysql -h 127.0.0.1 的時候,使用 TCP/IP 連接, mysql server 認為該連接來自于127.0.0.1或者是"localhost.localdomain"
  2. mysql -h localhost 的時候,是 不使用TCP/IP 連接的,而使用 Unix socket ;此時,mysql server則認為該client是來自"localhost"
  3. mysql權(quán)限管理中的"localhost"有特定含義:

注意:雖然兩者連接方式有區(qū)別,但當localhost 為默認的127.0.0.1時,兩種連接方式使用的權(quán)限記錄都是以下的1.row的記錄(因為記錄在前,先被匹配)

*************************** 1. row *************************** 
Host: localhost 
User: root 
...... 
*************************** 2. row *************************** 
Host: 127.0.0.1 
User: root 

證明:

shell> mysql -h 127.0.0.1 
mysql> status; 
Currentuser: root@localhost 
SSL: Notin use 
Current pager: stdout 
Using outfile: '' 
Using delimiter: ; 
Server version: 5.1.33-log Source distribution 
Protocol version: 10 
Connection: 127.0.0.1 via TCP/IP 
shell> mysql -h locahostmysql> status; 
Currentuser: root@localhost 
SSL: Notin use 
Current pager: stdout 
Using outfile: '' 
Using delimiter: ; 
Server version: 5.1.33-log Source distribution 
Protocol version: 10 
Connection: Localhost via UNIX socket

發(fā)現(xiàn)問題

昨天在幫同事編譯安裝Linux環(huán)境時,遇到一個問題:

Web服務器是apache,數(shù)據(jù)庫是MySQL。

于是寫了一個測試連接數(shù)據(jù)庫的PHP頁面:

$mysql = mysql_connect('localhost','root','');

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

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

檢查環(huán)境正常

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

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

直接使用/usr/local/php5/bin/php /web/test.php執(zhí)行可以連上數(shù)據(jù)庫

apache也重啟了,一樣無效

疑點:為何網(wǎng)頁執(zhí)行失敗,命令執(zhí)行卻成功

這下就郁悶了,使用php命令直接執(zhí)行就成功,通過網(wǎng)頁執(zhí)行就失敗。難道是apache導致?網(wǎng)上搜索了大堆資料也沒找到解決方案,重新編譯安裝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連接數(shù)據(jù)庫時,主機填寫localhost與其它的區(qū)別閱讀了大量資料,最后得知:

當主機填寫為localhost時mysql會采用 unix domain socket連接

當主機填寫為127.0.0.1時mysql會采用tcp方式連接

這是linux套接字網(wǎng)絡的特性,win平臺不會有這個問題

解決方法

在my.cnf的[mysql]區(qū)段里添加

protocol=tcp

總結(jié)

以上所述是小編給大家介紹的MySQL數(shù)據(jù)庫主機127.0.0.1與localhost區(qū)別,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • 完美解決MySQL通過localhost無法連接數(shù)據(jù)庫的問題
  • MySQL 可以用localhost 連接,但不能用IP連接的問題解決方法
  • mysql_connect localhost和127.0.0.1的區(qū)別(網(wǎng)絡層闡述)
  • PHP中使用localhost連接Mysql不成功的解決方法
  • php mysql localhost,127.0.0.1和ip區(qū)別
  • MySQL新建用戶中的%到底包不包括localhost?

標簽:三門峽 巴中 貴州 贛州 南陽 新余 商丘 揚州

巨人網(wǎng)絡通訊聲明:本文標題《MySQL數(shù)據(jù)庫主機127.0.0.1與localhost區(qū)別》,本文關(guān)鍵詞  MySQL,數(shù)據(jù)庫,主機,127.0.0.1,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL數(shù)據(jù)庫主機127.0.0.1與localhost區(qū)別》相關(guān)的同類信息!
  • 本頁收集關(guān)于MySQL數(shù)據(jù)庫主機127.0.0.1與localhost區(qū)別的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章