MySQL 連接時 localhost 及 127.0.0.1 的分別


在連接 MySQL 時, 雖然使用 localhost 或 127.0.0.1 都是連接到本機, 但連接的方式本質上是不同的。

連接 MySQL 時如果不加上 -h 參數, 會使用預設的 localhost 連接 MySQL, 而透過 localhost 連接 MySQL 是使用 Unix Socket (/var/lib/mysql/mysql.sock), 沒有使 TCP/IP, 所以沒有經過網路卡, 不會受防火牆的限制。而如果透過 127.0.0.1 連接 MySQL, 即在指令模式輸入 mysql -h 127.0.0.1 連接 MySQL, 這便會使用 TCP/IP (使用 port 3306) 及經過網路卡傳送資料。

有時發現可以用 localhost 連接, 但輸入正確使用者名稱及密碼就不能連接到 127.0.0.1, 可能是網路設定的問題。

要檢視相關資料, 可以登入 MySQL 後, 輸入 status 指令, 便可以看到連線類型, 例如

localhost:

127.0.0.1:

Leave a Reply