ProstgreSQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở . PostgreSQL ban đầu được thiết kế để chạy trên các nền tảng tương tự UNIX. Nhưng bây giờ PostgreSQL đã điều chỉnh để có thể chạy trên hầu hết hệ điều hành .
Trong bài này mình sẽ hướng dẫn cách cài đặt và cấu hình PostgreSQL trên CentOS 8.
Cài đặt ProstgreSQL trên CentOS 8
Để liệt kê các phiên bản có sẵn trên CentOS 8 của mình thì gõ như sau :# dnf module list postgresql
hiện tại có 4 phiên bản và phiên bản mặc định là 10
Tiếp theo mình sẽ cài đặt PostgreSQL phiên bản 10:
# sudo dnf install @postgresql:10
để cài đặt các phiên bản khác thì mình chỉ cần chỉnh sửa số 10 thành phiên bản mình muốn cài đặt.
Sau khi đã hoàn tất cài đặt PostgreSQL mình tiến hành tạo cơ sở dữ liệu cho nó:
# sudo postgresql-setup initdb
sau khi tạo cơ sở dữ liệu xong mình tiếp tục khởi động các dịch vụ của PostgreSQL:
# sudo systemctl enable --now postgresql
mình sử dụng psql để xem phiên bản của PostgreSQL:
# sudo -u postgres psql -c "SELECT version();"
Phương thức xác thực của PostgreSQL
PostgreSQL hỗ trợ nhiều phương pháp xác thực nhưng phổ biến là : Trust : có thể kết nối mà không dùng đến mật khẩu miễn là pg_hba.conf đáp ứng các điều kiện xác thực Password : được cung cấp mật khẩu và các mật khẩu có thể lưu dưới dạng scram-sha-256, md5 hay là password Ident : dùng cổng TCP/IP và nó hoạt động bằng cách lấy tên người dùng hệ điều hành của khách hàng, với ánh xạ tên người dùng tùy chọn. Peer : giống như Ident nhưng chỉ hỗ trợ các kết nối cục bộTạo các cơ sở dữ liệu PostgreSQL
Trong ví dụ dưới đây mình sẽ tạo một cơ sở dữ liệu có tên là phuongdb và cấp các đặt quyền trên cơ sở dữ liệu đó đầu tiên mình sẽ kết nối với shell PostgreSQL:# sudo -u postpres psql
sau đó tạo một cơ sở dữ liêu mới
# CREATE ROLE phuong;
# CREATE DATABASE phuongdb;
# GRANT ALL PRIVILEGES ON DATABASE phuongdb TO phuong;
Cho phép truy cập từ xa tới server PostpreSQL
thông thường server PostgreSQL sẽ đi cục bộ qua 127.0.0.1 . để có thể truy cập từ xa và server PostgreSQL hãy chỉnh như sau :# sudo vi /var/lib/pgsql/data/postgresql.conf
tìm đến dòng CONNECTIONS AND AUTHENTICATION và chỉnh như sau :
sau đó lưu và khởi động lại dịch vụ PostgreSQL :
# sudo systemctl restart postgresql
bước cuối cùng mình cần chỉnh sửa file pg_hba.conf
dưới đây là một vài ví dụ cho các trường hợp :