🌐 Chia sẻ PostgreSQL Database qua mạng LAN
Trong quá trình phát triển dự án, nhiều khi chúng ta cần cho các máy tính trong cùng một mạng LAN truy cập chung tới một PostgreSQL server. Việc này giúp team dễ dàng phát triển, kiểm thử và dùng chung cơ sở dữ liệu.
🔧 Các bước cấu hình
1. Cho phép PostgreSQL lắng nghe các kết nối từ xa
Mở file postgresql.conf và chỉnh:
listen_addresses = '*'
2. Cấp quyền trong pg_hba.conf
Thêm dòng:
host all all 192.168.1.0/24 md5
👉 Cho phép tất cả máy trong mạng LAN 192.168.1.x được kết nối bằng mật khẩu.
3. Mở port 5432 trên firewall
Windows (CMD Admin):
netsh advfirewall firewall add rule name="PostgreSQL" dir=in action=allow protocol=TCP localport=5432
Linux (UFW):
sudo ufw allow 5432/tcp
4. Restart PostgreSQL service
- Windows:
net stop postgresql-x64-17 net start postgresql-x64-17
- Linux:
sudo systemctl restart postgresql
5. Kết nối từ máy client
psql -h 192.168.1.10 -U postgres -d ten_database -p 5432
Hoặc trong Python:
import psycopg2 conn = psycopg2.connect( host="192.168.1.10", port=5432, database="ten_database", user="postgres", password="matkhau" ) print("✅ Kết nối thành công!")
📌 Lưu ý bảo mật
- Chỉ mở cho dải IP LAN, tránh 0.0.0.0/0 khi không cần.
- Nếu cần truy cập từ Internet, nên dùng VPN hoặc SSH tunnel.
- Đặt mật khẩu mạnh, phân quyền user rõ ràng.
🖼️ Sơ đồ minh họa