Cách cài đặt và sử dụng PostgreSQL 13 trên Rocky Linux

theanh

Administrator
Nhân viên
PostgreSQL là một hệ thống quản lý cơ sở dữ liệu mã nguồn mở và miễn phí tập trung vào khả năng mở rộng và tuân thủ SQL. PostgreSQL là một RDBMS (Hệ thống quản lý cơ sở dữ liệu quan hệ) tiên tiến và cấp doanh nghiệp hỗ trợ cả truy vấn SQL (quan hệ) và JSON (phi quan hệ).

Đây là một hệ thống quản lý cơ sở dữ liệu có độ ổn định cao được hỗ trợ bởi hơn 20 năm phát triển của cộng đồng mã nguồn mở và có uy tín cao trong số các nhà phát triển và quản trị viên hệ thống về độ tin cậy, tính linh hoạt, tính mạnh mẽ của tính năng và hiệu suất.

PostgreSQL được sử dụng làm cơ sở dữ liệu chính cho các ứng dụng web, ứng dụng di động và ứng dụng phân tích. Một số người dùng PostgreSQL đáng chú ý trên toàn cầu là Reddit, Skype, Instagram, Disqus, The Guardian, Yandex, Bloomberg, Nokia, BMW, v.v.

Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt cơ sở dữ liệu PostgreSQL trên Rocky Linux, bảo mật triển khai cơ sở dữ liệu PostgreSQL và cách sử dụng cơ bản các truy vấn PostgreSQL để quản lý người dùng và cơ sở dữ liệu.

Điều kiện tiên quyết​

  • Hệ thống Rocky Linux.
  • Người dùng có quyền root hoặc sudo. Người dùng này sẽ được sử dụng để cài đặt các gói mới và thực hiện các thay đổi trên toàn hệ thống.

Thêm kho lưu trữ PostgreSQL​

Đối với hướng dẫn này, bạn sẽ cài đặt phiên bản ổn định mới nhất của PostgreSQL v13.4. Phiên bản này có sẵn trên kho lưu trữ PostgreSQL chính thức, vì vậy bạn cần thêm kho lưu trữ PostgreSQL vào hệ thống Rocky Linux của mình.

1. Thêm kho lưu trữ PostgreSQL chính thức cho hệ thống Rocky Linux bằng cách chạy lệnh sau.
Mã:
sudo dnf install -y [URL=https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm?utm_source=diendancongnghe.com]https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm[/URL]
2. Tiếp theo, hãy thực hiện lệnh sau đây để xác minh kho lưu trữ PostgreSQL có sẵn trên hệ thống của bạn.
Mã:
sudo dnf -qy repolist
Nếu kho lưu trữ PostgreSQL có sẵn trên hệ thống của bạn, bạn sẽ thấy nhiều phiên bản kho lưu trữ PostgreSQL như ảnh chụp màn hình bên dưới.


Cài đặt PostgreSQL 13 trên Rocky Linux​

Để có thể cài đặt PostgreSQL từ kho lưu trữ PostgreSQL chính thức (không phải từ kho lưu trữ Rocky Linux), bạn cần tắt mô-đun kho lưu trữ PostgreSQL tích hợp sẵn.

1. Thực hiện lệnh sau để vô hiệu hóa kho lưu trữ mô-đun PostgreSQL tích hợp sẵn.
Mã:
sudo dnf module -qy disable postgresql
Lệnh này sẽ chạy lệnh DNF ở chế độ im lặng và chấp nhận tất cả các khóa gpg (tùy chọn -qy) cho kho lưu trữ PostgreSQL.



2. Sau đó, cài đặt phiên bản mới nhất của PostgreSQL 13.4 từ kho lưu trữ PostgreSQL bằng lệnh dnf bên dưới.
Mã:
sudo dnf install postgresql13-server
Gõ 'y' và nhấn 'Enter' để cài đặt PostgreSQL 13.x.



Sau đó, đợi quá trình cài đặt PostgreSQL diễn ra.

Khởi tạo cơ sở dữ liệu PostgreSQL​

Tiếp theo, sau khi quá trình cài đặt PostgreSQL hoàn tất, bạn phải khởi tạo cấu hình PostgreSQL, sau đó khởi động và kích hoạt dịch vụ PostgreSQL.

1. Thực hiện lệnh sau để khởi tạo cấu hình cơ sở dữ liệu PostgreSQL.
Mã:
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb


2. Sau đó, hãy khởi động và kích hoạt dịch vụ PostgreSQL bằng lệnh bên dưới.
Mã:
sudo systemctl enable postgresql-13
sudo systemctl start postgresql-13
Bây giờ dịch vụ PostgreSQL đang hoạt động và chạy, và nó sẽ tự động chạy mỗi khi khởi động.

3. Bây giờ hãy thực hiện lệnh bên dưới để xác minh dịch vụ PostgreSQL.
Mã:
sudo systemctl status postgresql-13
Nếu dịch vụ PostgreSQL của bạn đang chạy, bạn sẽ thấy đầu ra màu xanh lá cây như "active(running)" như bên dưới. Nếu không, bạn sẽ thấy đầu ra màu đỏ như "thất bại" theo sau là nhật ký thông báo lỗi.


Bảo mật triển khai PostgreSQL​

Trong quá trình cài đặt, PostgreSQL sẽ tạo một người dùng hệ thống và tên người dùng cơ sở dữ liệu mới là "postgres". Và đối với giai đoạn này, bạn sẽ thiết lập một mật khẩu mới cho người dùng "postgres", cho cả người dùng hệ thốngngười dùng cơ sở dữ liệu.

1. Thay đổi mật khẩu cho người dùng hệ thống mặc định "postgres" bằng lệnh sau.
Mã:
passwd postgres
Bây giờ hãy nhập mật khẩu mới cho người dùng hệ thống "postgres".
2. Tiếp theo, để thay đổi mật khẩu cho người dùng cơ sở dữ liệu "postgres", bạn phải đăng nhập vào shell PostgreSQL.
Trước tiên, hãy đăng nhập với tư cách là người dùng hệ thống "postgres" bằng lệnh sau.
Mã:
su - postgres
Bây giờ hãy đăng nhập vào shell PostgreSQL bằng lệnh psql bên dưới.
Mã:
psql
Thực hiện truy vấn sau để tạo mật khẩu mới cho người dùng cơ sở dữ liệu "postgres" mặc định.
Mã:
ALTER USER postgres WITH PASSWORD 'strongpostgrespassword';
Bây giờ hãy nhập exit và nhấn "Ctrl+d" để thoát và đăng xuất khỏi shell người dùng 'postgres'.


Change Authentication Phương pháp​

Theo mặc định, người dùng PostgreSQL cục bộ sẽ kết nối với shell PostgreSQL bằng phương pháp 'peer'. Phương pháp xác thực ngang hàng sẽ chỉ hoạt động đối với các kết nối cục bộ. Trong môi trường phát triển, bạn có thể sử dụng loại xác thực này, nhưng đối với môi trường sản xuất, hãy cân nhắc sử dụng phương pháp xác thực dựa trên mật khẩu.

Đối với giai đoạn này, bạn sẽ học cách thay đổi phương pháp xác thực ngang hàng mặc định thành xác thực bằng mật khẩu bằng cách sử dụng 'scram-sha-256'.

1. Trước tiên, hãy đăng nhập vào shell PostgreSQL bằng lệnh sau.
Mã:
sudo -u postgres psql
Bây giờ hãy thực hiện truy vấn sau để kiểm tra vị trí của cấu hình PostgreSQL 'pg_hba.conf'.
Mã:
SHOW hba_file;
SHOW password_encryption;
Bạn sẽ thấy đầu ra như bên dưới.



Bạn sẽ thấy cấu hình PostgreSQL "pg_hba.conf" nằm tại thư mục '/var/lib/pgsql/13/data' và mật khẩu mã hóa mặc định cho PostgreSQL trên hệ điều hành dựa trên RHEL là 'scram-sha-256'.

Bây giờ hãy nhập '\q' để thoát và thoát khỏi shell PostgreSQL.

2. Tiếp theo, hãy thay đổi thư mục làm việc thành '/var/lib/pgsql/13/data' và chỉnh sửa cấu hình 'pg_hba.conf' bằng trình soạn thảo nano.
Mã:
cd /var/lib/pgsql/13/data/
nano pg_hba.conf
Ở cuối dòng, hãy thay đổi phương thức xác thực cục bộ thành 'scram-sha-256' như bên dưới.
Mã:
# TYPE DATABASE USER ADDRESS METHOD

# "local" chỉ dành cho kết nối socket miền Unix
local all all scram-sha-256
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256
# IPv6 local connections:
host all all ::1/128 scram-sha-256
Bây giờ hãy nhấn 'Ctrl+x', nhập 'y' và nhấn "Enter" để lưu và thoát.

Sử dụng cấu hình này, bạn sẽ được nhắc nhập mật khẩu để đăng nhập vào shell PostgreSQL.

3. Tiếp theo, áp dụng cấu hình mới bằng cách khởi động lại dịch vụ PostgreSQL bằng lệnh sau.
Mã:
sudo systemctl restart postgresql-13
Bây giờ mỗi khi bạn muốn truy cập shell PostgreSQL, bạn phải nhập mật khẩu để xác thực.

4. Để đảm bảo cấu hình xác thực mật khẩu, hãy đăng nhập vào PostgreSQL shell bằng lệnh sau.
Mã:
su - postgres
psql
Bây giờ bạn sẽ được yêu cầu nhập mật khẩu cho người dùng mặc định 'postgres'.

Nhập mật khẩu cho người dùng cơ sở dữ liệu 'postgres' và nhấn 'Enter'. Nếu mật khẩu của bạn đúng, bạn sẽ thấy PostgreSQL shell như sau. Nếu không, bạn sẽ thấy lỗi 'FATAL' vì mật khẩu không đúng.



Ngoài ra, bạn có thể sử dụng lệnh một dòng để đăng nhập vào shell PostgreSQL như bên dưới.
Mã:
# Đăng nhập với tư cách là người dùng "postgres" mặc định
sudo -u postgres psql

# Đăng nhập với tư cách là người dùng khác
sudo -u postgres psql -U username

Tạo người dùng và cơ sở dữ liệu mới cho ứng dụng của bạn​

Ở giai đoạn này, bạn sẽ học cách tạo người dùng và cơ sở dữ liệu mới trên PostgreSQL.

1. Đăng nhập vào shell PostgreSQL bằng cách thực hiện lệnh bên dưới.
Mã:
sudo -u postgres psql
Bây giờ hãy nhập mật khẩu cho người dùng PostgreSQL 'postgres'.

2. Chạy truy vấn PostgreSQL bên dưới để tạo người dùng mới 'johndoe' với mật khẩu 'johndoestrongpassword' và cấp cho người dùng các quyền để tạo cơ sở dữ liệu và vai trò mới.
Mã:
CREATE USER johndoe WITH 
CREATEDB
CREATEROLE
PASSWORD 'johndoestrongpassword';


Sau đó, xác minh người dùng mới bằng truy vấn sau.
Mã:
\du
Bây giờ bạn sẽ thấy người dùng mới 'johndoe' với danh sách các vai trò 'Create role' và 'Create DB' như bên dưới.



3. Tiếp theo, để tạo cơ sở dữ liệu người dùng mới trên PostgreSQL, hãy chạy truy vấn sau.
Mã:
CREATE DATABASE johndoe OWNER johndoe;
Bây giờ hãy xác minh cơ sở dữ liệu mới bằng truy vấn sau.
Mã:
\l
Và bạn sẽ thấy cơ sở dữ liệu mới 'johndoe' với chủ sở hữu 'johndoe' như ảnh chụp màn hình bên dưới.


Tạo bảng và chèn dữ liệu​

Sau khi tạo cơ sở dữ liệu và người dùng mới, bạn sẽ học cách tạo bảng, nhập dữ liệu và hiển thị dữ liệu từ cơ sở dữ liệu.

1. Bây giờ hãy đăng nhập vào shell PostgreSQL với tư cách là người dùng 'johndoe' bằng lệnh sau.
Mã:
su - postgres
psql -U johndoe
Hoặc bạn có thể sử dụng lệnh một dòng như bên dưới.
Mã:
sudo -u postgres psql -U johndoe
Bây giờ hãy nhập mật khẩu cho người dùng PostgreSQL 'johndoe' và nhấn 'Enter' để đăng nhập.



Như bạn có thể thấy trên ảnh chụp màn hình, bây giờ bạn đã đăng nhập vào shell PostgreSQL tại cơ sở dữ liệu 'johndoe=>'.

2. Bây giờ hãy thực hiện truy vấn sau để tạo một bảng mới 'users' với một số cột 'id, name, age, address và salary'.
Mã:
CREATE TABLE users (
 id INT PRIMARY KEY NOT NULL,
 name TEXT NOT NULL,
 age INT NOT NULL,
 address CHAR(50),
 salary REAL
);
Để hiển thị các bảng có sẵn trên cơ sở dữ liệu hiện tại, hãy sử dụng truy vấn '\d' dưới dạng 'describe' như bên dưới.
Mã:
\d
Để hiển thị các cột trên bảng, bạn có thể sử dụng cùng một truy vấn theo sau là tên bảng như bên dưới.
Mã:
\d users
Dưới đây là kết quả đầu ra tương tự mà bạn sẽ nhận được.



3. Tiếp theo, thêm dữ liệu mới vào bảng bằng truy vấn 'insert' như bên dưới.
Mã:
INSERT INTO users (id,name,age,address,salary) VALUES (1, 'Paul', 32, 'California', 20000.00);
INSERT INTO users (id,name,age,address,salary) VALUES (2, 'Jesse', 35, 'Mexico', 30000.00);
INSERT INTO users (id,name,age,address,salary) VALUES (3, 'Linda', 27, 'Canada', 40000.00);


4. Sau đó, bạn có thể hiển thị tất cả dữ liệu có sẵn bằng truy vấn 'select' như bên dưới.
Mã:
SELECT * FROM users;
Tùy chọn '*' sẽ đổ tất cả các cột vào trong bảng.

Để chỉ định cột, bạn có thể sử dụng truy vấn 'select' như bên dưới.
Mã:
SELECT name,age,salary FROM users;
Bạn sẽ thấy đầu ra tương tự như bên dưới.


Kết luận​

Xin chúc mừng! Bây giờ bạn đã biết cách cài đặt PostgreSQL trên Rocky Linux. Ngoài ra, bạn đã biết cách triển khai PostgreSQL theo cách an toàn (tối thiểu) và cách sử dụng cơ bản các truy vấn PostgreSQL để quản lý người dùng, cơ sở dữ liệu và bảng.
 
Back
Bên trên