1. 程式人生 > >localhost與127.0.0.1的區別是什麽

localhost與127.0.0.1的區別是什麽

服務器 ket mysql 解決 -h val 就是 local 是什麽

問題描述

今天我在訪問mysql時,遇到127.0.0.1不能夠訪問,而localhost可以訪問的問題。

解決方案

1.之前有人說用127.0.0.1本地ip,它比localhost好,可以減少一次解析,我也就相信了。
今天重新看搜索了下,看了還是我不清楚,其實這兩者是有區別的。

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

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

4.一般設置程序時本地服務用localhost是最好的,localhost不會解析成ip,也不會占用網卡、網絡資源。

5.有時候用 localhost 可以,但用 127.0.0.1 就不可以的情況就是在於此。猜想 localhost訪問時,系統帶的本機當前用戶的權限去訪問,而用IP的時候,等於本機是通過網絡再去訪問本機,可能涉及到網絡用戶的權限。

MySQL 連接時主機類型

a.mysql -h 127.0.0.1 的時候,使用 TCP/IP 連接
b.mysql -h localhost 的時候,是不使用 TCP/IP 連接的,而使用 Unix socket;此時,mysql server 則認為該 client 是來自 “localhost”
MySQL 手冊 5.6.4 ….. A Host value may be a hostname or an IP number, or ‘localhost’ to indicate the local host.

簡而言之:主要區別是 localhost 是通過 unix domain socket 方式來連接,而 127.0.0.1 則是走的 TCP 協議方式連接

分別用上述方式訪問主機,然後使用status命令
前者:Connection: 127.0.0.1 via TCP/IP
後者:Connection: Localhost via UNIX socket

localhost與127.0.0.1的區別是什麽