HƯỚNG DẪN CÀI POSTGRESQL + POSTGIS TRÊN UBUNTU (FULL)
🐘 HƯỚNG DẪN CÀI POSTGRESQL + POSTGIS TRÊN UBUNTU (FULL)
📌 1. Kiểm tra OS
uname -a
👉 Nếu là Ubuntu (như Sếp) → OK
📌 2. Fix lỗi apt bị lock (nếu có)
sudo killall -9 apt apt-get sudo rm -f /var/lib/apt/lists/lock sudo rm -f /var/cache/apt/archives/lock sudo rm -f /var/lib/dpkg/lock* sudo dpkg --configure -a
📌 3. Update hệ thống
sudo apt update
📌 4. Cài PostgreSQL
sudo apt install postgresql postgresql-contrib -y
📌 5. Kiểm tra service
sudo systemctl status postgresql
👉 phải là:
active (running)
📌 6. Đăng nhập PostgreSQL
sudo -u postgres psql
📌 7. Tạo database + user
CREATE USER saas_user WITH PASSWORD '123456'; CREATE DATABASE saas_db OWNER saas_user;
Thoát:
\q
📌 8. Mở kết nối từ bên ngoài
🔧 Sửa config#
sudo nano /etc/postgresql/14/main/postgresql.conf
Sửa:
listen_addresses = '*'
🔐 Sửa quyền truy cập#
sudo nano /etc/postgresql/14/main/pg_hba.conf
Thêm:
host all all 0.0.0.0/0 md5
🔄 Restart#
sudo systemctl restart postgresql
🔍 Kiểm tra port#
netstat -plnt | grep 5432
👉 phải là:
0.0.0.0:5432
🔥 Mở firewall#
sudo ufw allow 5432
📌 9. Cài PostGIS (quan trọng cho bản đồ)
sudo apt install postgis postgresql-14-postgis-3 -y
📌 10. Enable PostGIS
sudo -u postgres psql
\c saas_db CREATE EXTENSION postgis;
✅ Kiểm tra#
SELECT PostGIS_Version();
📌 11. Test PostGIS
Tạo bảng#
CREATE TABLE places ( id SERIAL PRIMARY KEY, name TEXT, location GEOGRAPHY(Point, 4326) );
Insert dữ liệu#
INSERT INTO places (name, location) VALUES ('Cafe A', ST_MakePoint(105.85, 21.02));
Query khoảng cách#
SELECT name FROM places ORDER BY location <-> ST_MakePoint(105.85, 21.02) LIMIT 1;
🚀 12. Tối ưu (khuyên dùng)
CREATE INDEX idx_location ON places USING GIST(location);
⚠️ 13. Bảo mật (production)
❌ Không dùng:
0.0.0.0/0
👉 Nên dùng:
host all all YOUR_IP/32 md5
🎯 KẾT LUẬN
| Thành phần | Trạng thái |
|---|---|
| PostgreSQL | ✅ |
| Remote access | ✅ |
| PostGIS | ✅ |
| Ready SaaS | ✅ |
Bài liên quan trong #Database
-
Hướng dẫn cài MinIO trên Ubuntu 24
minhdev -
Xây dựng DB cho website Hội Nhóm như Facebook
minhdev -
Những việc cần chú ý mà Lập Trình Viên cần phải biết khi làm việc với Database
topdev -
Hệ thống như thế nào thì nên sử dụng MongoDB
minhdev -
Cách kiểm tra server linux đã cài Redis chưa và cách cài nó như thế nào
minhdev