Việc triển khai PostgreSQL trên các bản phân phối Linux, đặc biệt là Ubuntu 24.04.2 LTS, có thể thực hiện theo nhiều cách. Tuy nhiên, phương pháp phổ biến và thuận tiện nhất là sử dụng trình quản lý gói apt. Dưới đây là hướng dẫn chi tiết từng bước để cài đặt, cấu hình và chuẩn bị môi trường cơ sở dữ liệu cho ứng dụng.
Cài đặt PostgreSQL bằng kho lưu trữ chính thức
PostgreSQL hỗ trợ hai nguồn cài đặt chính trên Ubuntu: kho mặc định của hệ thống và kho riêng do nhóm phát triển PostgreSQL cung cấp. Kho mặc định thường chứa phiên bản cũ hơn, trong khi kho PGDG (PostgreSQL Global Development Group) luôn cập nhật phiên bản mới nhất.
Để cài đặt thông qua PGDG – đảm bảo có được phiên bản mới như PostgreSQL 17 – thực hiện các lệnh sau:
sudo apt update
sudo apt install -y postgresql-common
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
sudo apt install -y postgresql-17
Sau khi hoàn tất, hệ thống sẽ tự động:
- Tạo người dùng hệ thống
postgres, - Khởi tạo cụm cơ sở dữ liệu ban đầu (không cần chạy
initdbthủ công), - Kích hoạt và bật dịch vụ PostgreSQL để khởi động cùng hệ thống.
Truy cập vào máy chủ cơ sở dữ liệu với quyền superuser
Theo mặc định, PostgreSQL sử dụng phương thức xác thực peer đối với kết nối cục bộ. Điều này có nghĩa là nếu tên người dùng Linux trùng với tên vai trò (role) trong PostgreSQL, bạn có thể đăng nhập mà không cần mật khẩu.
Vì tài khoản postgres đã tồn tại, ta có thể chuyển sang người dùng này và truy cập vào giao diện dòng lệnh psql:
sudo -u postgres psql
Tại đây, bạn đang ở trong môi trường tương tác của PostgreSQL với toàn quyền quản trị.
Thiết lập người dùng và cơ sở dữ liệu cho ứng dụng
Để phục vụ ứng dụng, nên tạo một vai trò chuyên dụng thay vì dùng trực tiếp tài khoản postgres. Ví dụ, tạo người dùng appuser với quyền tạo cơ sở dữ liệu:
CREATE USER appuser WITH PASSWORD 'securepass123' CREATEDB;
Tiếp theo, tạo cơ sở dữ liệu thuộc sở hữu của người dùng này:
CREATE DATABASE appdb OWNER appuser;
Kiểm tra danh sách cơ sở dữ liệu hiện có:
\l
Thoát khỏi shell psql bằng lệnh:
\q
Cấu hình truy cập từ xa
Nếu ứng dụng nằm trên máy khác và cần kết nối đến cơ sở dữ liệu, hai thao tác cấu hình bắt buộc phải thực hiện:
- Cho phép PostgreSQL lắng nghe trên tất cả địa chỉ mạng: Sửa file
/etc/postgresql/17/main/postgresql.conf(thay 17 bằng phiên bản bạn dùng):
listen_addresses = '*'
- Cập nhật quy tắc xác thực trong
pg_hba.conf: Mở file/etc/postgresql/17/main/pg_hba.confvà thêm dòng sau để cho phép kết nối từ bất kỳ IP nào sử dụng xác thực mã hóa an toàn:
host all all 0.0.0.0/0 scram-sha-256
Sau khi thay đổi, khởi động lại dịch vụ để áp dụng cấu hình:
sudo systemctl restart postgresql
Lưu ý: Việc mở cổng truy cập từ xa cần đi kèm các biện pháp bảo mật bổ sung như tường lửa, giới hạn IP hoặc sử dụng SSL.