Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Khác biệt giữa localhost và 127.0.0.1

Cả hai đều trỏ đến máy tính cục bộ (loopback), nhưng cơ chế giải quyết khác nhau:

Đặc điểmlocalhost127.0.0.1
Giải quyết tênCần tra cứu bảng hosts (/etc/hosts hoặc DNS)Địa chỉ IP trực tiếp, không cần tra cứu
Kết nối MySQLMặc định dùng Unix socket (file .sock) - nhanh hơn localBuộc dùng TCP/IP (port 3306) - chậm hơn một chút
Dễ nhớDễ nhớ, dễ gõKhó nhớ hơn
Hiệu năngNhanh hơn (socket)Chậm hơn (TCP handshake)

Trong MySQL

  • mysql -h localhost -> kết nối qua Unix socket (mặc định).
  • mysql -h 127.0.0.1 -> kết nối qua TCP/IP.
  • Có thể ép buộc TCP cho localhost: mysql -h localhost --protocol=TCP.

Khi nào dùng cái nào?

  • Phát triển local: dùng localhost (nhanh, tiện).
  • Docker/Container: thường phải dùng 127.0.0.1 hoặc IP container vì socket không chia sẻ.
  • Cấu hình replication/cluster: dùng IP tường minh (127.0.0.1 hoặc IP LAN) để tránh nhầm lẫn socket.

Tóm lại: localhost tiện và nhanh (socket), 127.0.0.1 rõ ràng, bắt buộc TCP, dùng khi socket không khả dụng.