mysql localhost與127.0.0.1以及ip鏈接的區別

------------------------原文連接 http://hi.baidu.com/mongodb/item/375f01868a74b6ceef083d80 --------------------mysql

一家之言:web

localhost與127.0.0.1的區別
localhost與127.0.0.1的區別是什麼?相信有人會說是本地ip,曾有人說,用127.0.0.1比localhost好,能夠減小一次解析。看來這個入門問題還有人不清楚,其實這二者是有區別的。sql

no1:mongodb

localhost也叫local ,正確的解釋是:本地服務器
127.0.0.1在windows等系統的正確解釋是:本機地址(本機服務器)shell

no2:windows

localhot(local)是不經網卡傳輸!這點很重要,它不受網絡防火牆和網卡相關的的限制。
127.0.0.1是經過網卡傳輸,依賴網卡,並受到網絡防火牆和網卡相關的限制。服務器

通常設置程序時本地服務用localhost是最好的,localhost不會解析成ip,也不會佔用網卡、網絡資源。網絡

有時候用localhost能夠,但用127.0.0.1就不能夠的狀況就是在於此。猜測localhost訪問時,系統帶的本機當前用戶的權限去訪問,而用ip的時候,等於本機是經過網絡再去訪問本機,可能涉及到網絡用戶的權限。dom

他家之言:socket

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權限管理中的"localhost"有特定含義:
—— MySQL手冊 5.6.4 ..... A Host value may be a hostname or an IPnumber, or 'localhost' to indicate the local host.

注意:雖然二者鏈接方式有區別,但當localhost爲默認的127.0.0.1時,兩種鏈接方式使用的權限記錄都是如下的1.row的記錄(由於記錄在前,先被匹配)

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

證實:

shell> mysql -h 127.0.0.1
mysql> status;
Currentuser:          root@127.0.0.1
SSL:                   Not in use
Currentpager:         stdout
Usingoutfile:         ''
Usingdelimiter:       ;
Serverversion:        5.1.33-log Source distribution
Protocolversion:      10
Connection:          127.0.0.1via TCP/IP

shell> mysql -h locahost
mysql> status;
Currentuser:          root@localhost
SSL:                   Not in use
Currentpager:         stdout
Usingoutfile:         ''
Usingdelimiter:       ;
Serverversion:        5.1.33-log Source distribution
Protocolversion:      10
Connection:          Localhostvia UNIX socket

shell> mysql -h XXXX(ip)
mysql> status;
Currentuser:          root@ip
SSL:                   Not in use
Currentpager:         stdout
Usingoutfile:         ''
Usingdelimiter:       ;
Serverversion:        5.1.33-log Source distribution
Protocolversion:      10
Connection:          XXXX(ip)via TCP/IP

相關文章
相關標籤/搜索