Cài đặt PostgreSQL 12 trên Ubuntu 20.04 - Install PostgreSQL 12 Ubuntu 20.04

Bài viết này sẽ hướng dẫn bạn qua các bước install PostgreSQL 12 Ubuntu 20.04. PostgreSQL là một trong những hệ quản trị cơ sở dữ liệu đối tượng-quan hệ phổ biến nhất dựa trên POSTGRES 4.2. PostgreSQL 12 đã được phát hành cho việc sử dụng chung, phù hợp cho cả môi trường sản xuất và tất cả các trường hợp phát triển.

Nếu bạn muốn xem tất cả các tính năng mới và cải tiến trong PostgreSQL 12, hãy truy cập trang ghi chú phiên bản PostgreSQL 12 để kiểm tra các cải tiến chính trong PostgreSQL 12. Không cần phải chờ đợi nhiều, hãy bắt đầu cài đặt PostgreSQL 12 trên hệ thống Linux Ubuntu 20.04 ngay.

Bước 1: Cập nhật hệ thống

Nếu đây là một phiên bản máy chủ mới, bạn nên cập nhật các gói hệ thống hiện tại.

sudo apt update
sudo apt -y install vim bash-completion wget
sudo apt -y upgrade

Khởi động lại là bước cần thiết sau khi nâng cấp.

sudo reboot

Bước 2: Thêm kho lưu trữ PostgreSQL 12

Chúng ta cần nhập khóa GPG và thêm kho lưu trữ PostgreSQL 12 vào máy Ubuntu. Chạy các lệnh sau để hoàn thành việc này.

curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg

Sau khi đã nhập khóa GPG, thêm nội dung kho lưu trữ vào hệ thống Ubuntu 20.04 của bạn:

echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee /etc/apt/sources.list.d/pgdg.list

Kho lưu trữ đã thêm chứa nhiều gói khác nhau bao gồm các bổ sung bên thứ ba. Các gói bao gồm:

  • postgresql-client
  • postgresql
  • libpq-dev
  • postgresql-server-dev
  • gói pgadmin

Bước 3: Install PostgreSQL 12 Ubuntu 20.04

Bây giờ đã thành công thêm kho lưu trữ, hãy cập nhật danh sách gói và cài đặt các gói máy chủ, máy khách PostgreSQL 12 trên hệ thống Linux Ubuntu 20.04 của bạn.

sudo apt update
sudo apt -y install postgresql-12 postgresql-client-12

Một quá trình cài đặt thành công sẽ in ra một thông báo tương tự như thông báo được chia sẻ trong ảnh chụp màn hình dưới đây.

hình 1

Dịch vụ PostgreSQL được khởi động và thiết lập để xuất hiện sau mỗi lần khởi động lại hệ thống.

$ systemctl status postgresql.service
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Wed 2022-05-18 15:50:22 EAT; 15min ago
Main PID: 4317 (code=exited, status=0/SUCCESS)
CPU: 1ms

Mei 18 15:50:22 ubuntu22 systemd[1]: Starting PostgreSQL RDBMS...
Mei 18 15:50:22 ubuntu22 systemd[1]: Finished PostgreSQL RDBMS.

$ systemctl status postgresql@12-main.service
● postgresql@12-main.service - PostgreSQL Cluster 12-main
Loaded: loaded (/lib/systemd/system/postgresql@.service; enabled-runtime; vendor preset: enabled)
Active: active (running) since Wed 2022-05-18 16:04:01 EAT; 1min 59s ago
Process: 6838 ExecStart=/usr/bin/pg_ctlcluster --skip-systemctl-redirect 12-main start (code=exited, status=0/SUCCESS)
Main PID: 6843 (postgres)
Tasks: 7 (limit: 9460)
Memory: 18.2M
CPU: 157ms
CGroup: /system.slice/system-postgresql.slice/postgresql@12-main.service
├─6843 /usr/lib/postgresql/12/bin/postgres -D /var/lib/postgresql/12/main -c config_file=/etc/postgresql/12/main/postgresql.conf
├─6845 "postgres: 12/main: checkpointer " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "">
├─6846 "postgres: 12/main: background writer " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" >
├─6847 "postgres: 12/main: walwriter " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "">
├─6848 "postgres: 12/main: autovacuum launcher " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ">
├─6849 "postgres: 12/main: stats collector " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "">
└─6850 "postgres: 12/main: logical replication launcher " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ">

Mei 18 16:03:58 ubuntu22 systemd[1]: Starting PostgreSQL Cluster 12-main...
Mei 18 16:04:01 ubuntu22 systemd[1]: Started PostgreSQL Cluster 12-main.

$ systemctl is-enabled postgresql
enabled

Bước 4: Kiểm tra kết nối PostgreSQL

Trong quá trình cài đặt, người dùng "postgres" sẽ được tạo tự động. Người dùng này có quyền quản trị toàn bộ PostgreSQL trong hệ thống của bạn. Trước khi chuyển sang tài khoản này, người dùng hệ thống đang đăng nhập cần có đặc quyền sudo.

sudo su - postgres

Hãy đặt lại mật khẩu của người dùng này thành một mật khẩu mạnh mà bạn có thể nhớ.

psql -c "alter user postgres with password 'StrongAdminPassw0rd'"

Bắt đầu giao diện dòng lệnh PostgreSQL bằng cách sử dụng lệnh:

$ psql

Lấy thông tin kết nối như dưới đây:

$ psql
psql (12.11 (Ubuntu 12.11-1.pgdg22.04+1))
Type "help" for help.

postgres=# \conninfo
You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432".

Hãy tạo một cơ sở dữ liệu và người dùng thử nghiệm để kiểm tra xem nó có hoạt động không.

postgres=# CREATE DATABASE mytestdb;
CREATE DATABASE
postgres=# CREATE USER mytestuser WITH ENCRYPTED PASSWORD 'MyStr0ngP@SS';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE mytestdb to mytestuser;
GRANT

Liệt kê cơ sở dữ liệu đã tạo:

postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+---------+---------+-------------------------
mytestdb | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =Tc/postgres +
| | | | | postgres=CTc/postgres +
| | | | | mytestuser=CTc/postgres
postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 |
template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)

Kết nối với cơ sở dữ liệu:

postgres-# \c mytestdb
You are now connected to database "mytestdb" as user "postgres".

Các tiện ích PostgreSQL khác được cài đặt như createuser và createdb có thể được sử dụng để tạo cơ sở dữ liệu, người dùng.

postgres@ubuntu:~$ createuser myuser --password
Password:
postgres@ubuntu:~$ createdb mydb -O myuser
postgres@ubuntu:~$ psql -l

Chúng ta có thể tạo và kết nối tới một cơ sở dữ liệu trên máy chủ PostgreSQL.

Bước 5: Định cấu hình kết nối từ xa (tùy chọn)

Install PostgreSQL 12 Ubuntu 20.04 chỉ chấp nhận kết nối từ localhost. Trong môi trường sản xuất lý tưởng, bạn sẽ có một máy chủ cơ sở dữ liệu trung tâm và các máy khách kết nối từ xa đến nó nhưng tất nhiên chỉ trong một mạng riêng (LAN).

Để kích hoạt kết nối từ xa, chỉnh sửa tệp cấu hình PostgreSQL:

sudo nano /etc/postgresql/12/main/postgresql.conf 

Bỏ dấu chú thích dòng 59 và thay đổi địa chỉ nghe để chấp nhận kết nối trong mạng của bạn.

# Listen on all interfaces
listen_addresses = '*'

# Listen on specified private IP address
listen_addresses = '192.168.10.11'

Sau khi thay đổi, khởi động lại dịch vụ postgresql.

sudo systemctl restart postgresql

Xác nhận địa chỉ nghe.

$ sudo netstat -tunelp | grep 5432
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 111 112837 11143/postgres
tcp6 0 0 :::5432 :::* LISTEN 111 112838 11143/postgres

Bước 6: Cài đặt công cụ quản lý pgAdmin4

Nếu bạn muốn quản lý máy chủ cơ sở dữ liệu PostgreSQL của mình thông qua giao diện web, hãy cài đặt pgAdmin4.

Mọi người cũng tìm kiếm: install postgresql 12 ubuntu, install postgresql 12, postgresql 12, postgres 12, install postgresql ubuntu 20.04, install postgresql ubuntu, postgresql-client-12, install postgresql 12 ubuntu 20.04