Cách cài đặt PostgreSQL trên Ubuntu 22.04

theanh

Administrator
Nhân viên
PostgreSQL là một hệ thống quản lý cơ sở dữ liệu quan hệ mã nguồn mở và phổ biến nhất. Nó triển khai ngôn ngữ truy vấn SQL và cung cấp tính ổn định, hiệu suất và tính toàn vẹn dữ liệu mạnh mẽ. Bạn có thể sử dụng cơ sở dữ liệu PostgreSQL để chạy các ứng dụng quan trọng. PostgreSQL có các tính năng như giao dịch Nest, kiểm soát đồng thời nhiều phiên bản, kế thừa bảng, sao chép không đồng bộ, tính toàn vẹn tham chiếu khóa ngoại, v.v.

Bài đăng này sẽ chỉ cho bạn cách cài đặt cơ sở dữ liệu PostgreSQL trên Ubuntu 22.04.

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

  • Máy chủ chạy Ubuntu 22.04.
  • Mật khẩu gốc được cấu hình trên máy chủ.

Bắt đầu​

Trước tiên, hãy cập nhật và nâng cấp tất cả các gói hệ thống lên phiên bản mới nhất bằng lệnh sau:
Mã:
apt update -y
apt upgrade -y
Sau khi hệ thống của bạn được cập nhật, bạn có thể cài đặt các phụ thuộc bắt buộc khác bằng lệnh sau:
Mã:
apt install wget curl gnupg2 -y
Sau khi cài đặt tất cả các phụ thuộc, bạn có thể tiến hành cài đặt InfluxDB.

Thêm PostgreSQL Kho lưu trữ​

Theo mặc định, phiên bản mới nhất của PostgreSQL không có sẵn trong kho lưu trữ mặc định của Ubuntu 22.04. Vì vậy, bạn sẽ cần thêm kho lưu trữ chính thức PostgreSQL vào hệ thống của mình.

bạn có thể thêm kho lưu trữ PostgreSQL và khóa GPG bằng lệnh sau:
Mã:
sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc | tee /etc/apt/trusted.gpg.d/pgdg.asc &>/dev/null
Tiếp theo, cập nhật kho lưu trữ PostgreSQL bằng lệnh sau:
Mã:
apt update -y

Cài đặt PostgreSQL trên Ubuntu 22.04​

Bây giờ bạn có thể cài đặt PostgreSQL 15 bằng cách chạy lệnh sau:
Mã:
apt install postgresql postgresql-client -y
Sau khi PostgreSQL đã được cài đặt, hãy xác minh trạng thái của PostgreSQL bằng lệnh sau:
Mã:
systemctl status postgresql
Bạn sẽ nhận được thông báo sau đầu ra:
Mã:
? postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Mon 2022-12-05 14:28:18 UTC; 1min 57s ago Main PID: 10824 (code=exited, status=0/SUCCESS) CPU: 4ms
Dec 05 14:28:18 ubuntu2204 systemd[1]: Starting PostgreSQL RDBMS...
Dec 05 14:28:18 ubuntu2204 systemd[1]: Finished PostgreSQL RDBMS.
Để kiểm tra phiên bản PostgreSQL, hãy chạy lệnh sau:
Mã:
sudo -u postgres psql -c "SELECT version();"
Bạn sẽ nhận được thông tin sau đầu ra:
Mã:
version
----------------------------------------------------------------------------------------------------------------------------------- PostgreSQL 15.1 (Ubuntu 15.1-1.pgdg22.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0, 64-bit
(1 row)

Cấu hình PostgreSQL cho Kết nối từ xa​

Theo mặc định, PostgreSQL chỉ cho phép kết nối từ máy chủ cục bộ. Nếu bạn muốn cho phép kết nối từ xa thì bạn sẽ cần chỉnh sửa tệp cấu hình PostgreSQL và xác định phương thức xác thực. Bạn có thể thực hiện bằng cách chỉnh sửa tệp sau:
Mã:
nano /etc/postgresql/15/main/pg_hba.conf
Thay đổi các dòng sau:
Mã:
local all all trust
host all all 0.0.0.0/0 md5
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, chỉnh sửa tệp cấu hình chính của PostgreSQL và thay đổi cổng lắng nghe:
Mã:
nano /etc/postgresql/15/main/postgresql.conf
Thay đổi dòng sau:
Mã:
listen_addresses='*'
Lưu và đóng tệp, sau đó khởi động lại dịch vụ PostgreSQL để áp dụng thay đổi:
Mã:
systemctl restart postgresql

Tạo Người dùng Quản trị​

Bạn nên tạo người dùng quản trị để quản lý những người dùng và cơ sở dữ liệu khác. Trước tiên, hãy đăng nhập vào shell PostgreSQL bằng lệnh sau:
Mã:
sudo -u postgres psql
Sau khi đăng nhập, bạn sẽ nhận được shell sau:
Mã:
psql (15.1 (Ubuntu 15.1-1.pgdg22.04+1))
Type "help" for help.
postgres=#
Tiếp theo, hãy tạo một người dùng quản trị và đặt mật khẩu với thông tin sau lệnh:
Mã:
CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'password';
Tiếp theo, xác minh người dùng đã tạo bằng lệnh sau:
Mã:
\du
Bạn sẽ thấy đầu ra sau:
Mã:
List of roles Role name | Attributes | Member of
-----------+------------------------------------------------------------+----------- postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {} root | Superuser, Create role, Create DB | {}

Tạo Cơ sở dữ liệu và Người dùng trong PostgreSQL​

Trong phần này, chúng tôi sẽ chỉ cho bạn cách tạo cơ sở dữ liệu và người dùng trong PostgreSQL.

Để tạo cơ sở dữ liệu có tên wpdb trong PostgreSQL, hãy chạy lệnh sau:
Mã:
create database wpdb;
Để tạo một người dùng có tên wpuser trong PostgreSQL, chạy lệnh sau:
Mã:
create user wpuser with encrypted password 'password';
Để cấp tất cả các quyền cho cơ sở dữ liệu wpdb, hãy chạy lệnh sau:
Mã:
grant all privileges on database wpdb to wpuser;
Bạn có thể liệt kê tất cả các cơ sở dữ liệu bằng cách sử dụng lệnh sau lệnh:
Mã:
\l
Bạn sẽ nhận được danh sách tất cả các cơ sở dữ liệu trong đầu ra sau:
Mã:
List of databases Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges
-----------+----------+----------+-------------+-------------+------------+-----------------+----------------------- postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/postgres + | | | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/postgres + | | | | | | | postgres=CTc/postgres wpdb | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =Tc/postgres + | | | | | | | postgres=CTc/postgres+ | | | | | | | wpuser=CTc/postgres
(4 rows)

Cách kết nối PostgreSQL từ máy từ xa​

Tại thời điểm này, PostgreSQL đã được cài đặt và cấu hình để cho phép kết nối từ các máy chủ từ xa. Để xác minh kết nối từ xa PostgreSQL, hãy chạy lệnh sau:
Mã:
psql 'postgres://wpuser:password@postgres-ip-address:5432/wpdb?sslmode=disable'

Kết luận​

Xin chúc mừng! Bạn đã cài đặt và cấu hình thành công máy chủ PostgreSQL trên Ubuntu 22.04. Bây giờ bạn có thể sử dụng PostgreSQL trong môi trường sản xuất để đạt được hiệu suất cao và tính toàn vẹn của dữ liệu. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên