連接MYSQL時,主機名爲 localhost 和 127.0.0.1 的區別

如果仔細查看MYSQL的權限表,會發現存在主機名爲 localhost 的記錄,也存在主機名爲 127.0.0.1 的記錄,那這兩着分別在什麼時候會用到呢?

使用 /usr/local/mysql/bin/mysql -u root -p訪問MYSQL服務器的時候,如果使用了 -h 參數,mysql 就會通過 TCP/IP 的方式去連接服務器;如果沒有 -h 參數,默認會使用 UNIX socket 方式。

如果通過 TCP/IP 方式進來的連接,MYSQL服務器接收到的來源主機是 127.0.0.1;如果是 UNIX socket 方式,MYSQL服務器接收到的來源主機是 localhost。

如果MYSQL服務器開啓了 skip_name_resolve,MYSQL服務器就不會把接收到的 IP 地址轉化爲域名,所以前者的current_user就是 root@'127.0.0.1',後者的current_user就是 root@'localhost'。

如果按照MYSQL的默認配置,skip_name_resovle 是OFF,MYSQL服務器就會將 127.0.0.1 轉換爲 localhost,那麼前者和後者兩種連接的 current_user 都是 root@'localhost'

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章