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ểm | localhost | 127.0.0.1 |
|---|---|---|
| Giải quyết tên | Cầ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 MySQL | Mặc định dùng Unix socket (file .sock) - nhanh hơn local | Buộ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ăng | Nhanh 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.1hoặ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.