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

theanh

Administrator
Nhân viên
PostgreSQL hay Postgres là một hệ quản lý cơ sở dữ liệu quan hệ đối tượng nguồn mở triển khai ngôn ngữ truy vấn SQL. Nó có các tính năng nâng cao như giao dịch đáng tin cậy và đồng thời mà không cần khóa đọc, cho phép chúng ta xây dựng các môi trường chịu lỗi và các ứng dụng phức tạp.

pgAdmin là một công cụ quản trị nguồn mở cho PostgreSQL. Nó hỗ trợ nhiều nền tảng, bao gồm Windows, macOS và Linux.

Hướng dẫn này sẽ hướng dẫn bạn cách cài đặt PostgreSQL 14 và pgAdmin 4 trên máy chủ Ubuntu 22.04.

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


  • Máy chủ chạy Ubuntu 20.04.

  • Người dùng sudo không phải root.

  • Tên miền đủ điều kiện (FQDN) như pgadmin.example.com.

  • Đảm bảo mọi thứ đều đã cập nhật.
Mã:
$ sudo apt update
$ sudo apt upgrade
[*]
Hệ thống của bạn cần một số gói.
Mã:
$ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y
Một số gói này có thể đã được cài đặt trên hệ thống của bạn.

Bước 1 - Cài đặt PostgreSQL​

Ubuntu 22.04 đi kèm với PostgreSQL 14 theo mặc định. Để cài đặt, hãy đưa ra lệnh sau.
Mã:
$ sudo apt install postgresql postgresql-contrib
Gói postgresql-contrib chứa một số tiện ích bổ sung.

Bạn cũng có thể sử dụng kho lưu trữ APT chính thức của PostgreSQL để cài đặt. Chạy lệnh sau để thêm khóa GPG PostgreSQL.
Mã:
$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/null
Thêm kho lưu trữ APT vào danh sách nguồn của bạn.
Mã:
$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/postgresql-key.gpg arch=amd64] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
Cập nhật hệ thống kho lưu trữ.
Mã:
$ sudo apt update
Bây giờ, bạn có thể cài đặt PostgreSQL bằng lệnh được đề cập ở trên.

Kiểm tra trạng thái của PostgreSQL dịch vụ.
Mã:
$ sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Mon 2022-05-16 11:20:35 UTC; 5 days ago Process: 30544 ExecStart=/bin/true (code=exited, status=0/SUCCESS) Main PID: 30544 (code=exited, status=0/SUCCESS) CPU: 2ms
May 16 11:20:35 postgresql systemd[1]: Starting PostgreSQL RDBMS...
May 16 11:20:35 postgresql systemd[1]: Finished PostgreSQL RDBMS.
Bạn có thể thấy rằng dịch vụ được bật và chạy theo mặc định.

Bước 2 - Sử dụng vai trò PostgreSQL và phương pháp xác thực​

Postgres sử dụng một khái niệm gọi là vai trò để xử lý xác thực và truy cập cơ sở dữ liệu. Một vai trò đại diện cho một người dùng hoặc một nhóm người dùng. Postgres không phân biệt giữa người dùng và nhóm.

Postgres hỗ trợ nhiều phương thức xác thực, chẳng hạn như sau
  • Tin cậy - cho phép kết nối mà không cần bất kỳ mật khẩu nào miễn là các điều kiện được xác định trong tệp cấu hình được đáp ứng.
  • Mật khẩu - Điều này tự giải thích và yêu cầu mật khẩu để truy cập.
  • Ident - phương pháp này chỉ được hỗ trợ trên các kết nối TCP/IP và hữu ích cho các kết nối từ xa.
  • Peer - giống như Ident nhưng chỉ được sử dụng cho các kết nối cục bộ.
Theo mặc định, quá trình cài đặt Postgres sử dụng phương thức xác thực ngang hàng. Theo phương pháp này, nó liên kết một vai trò Postgres với một tài khoản hệ thống Linux phù hợp. Nếu có vai trò, bạn có thể đăng nhập bằng tài khoản Linux có cùng tên người dùng.

Cài đặt PostgreSQL sẽ tạo một tài khoản người dùng postgres được liên kết với vai trò mặc định. Bạn có thể chuyển sang tài khoản postgres trên hệ thống của mình bằng lệnh sau.
Mã:
$ sudo -i -u postgres
Truy cập shell PostgreSQL bằng cách sử dụng psql lệnh.
Mã:
postgres@howtoforge:~$ psql
Bạn sẽ được đăng nhập vào PostgreSQL vỏ.
Mã:
psql (14.3 (Ubuntu 14.3-1.pgdg22.04+1))
Type "help" for help.
postgres=#
Loại exit hoặc \q để đóng shell.

Bạn cũng có thể truy cập shell PostgreSQL bằng một lệnh duy nhất. Lệnh sau chạy shell dưới tài khoản postgres. Thoát khỏi shell sẽ đưa bạn đến người dùng hệ thống hiện tại của bạn.
Mã:
$ sudo -u postgres psql

Bước 3 - Tạo vai trò mới​

Bạn có thể tạo vai trò mới bằng lệnh createuser hoặc bạn có thể tạo chúng từ psql vỏ. Để sử dụng lệnh createuser, bạn cần phải đăng nhập vào tài khoản postgres. Nếu đã đăng nhập vào postgres, hãy chạy lệnh sau để tạo một vai trò mới.
Mã:
postgres@howtoforge:~$ createuser --interactive
Cờ --interactive sẽ nhắc bạn nhập tên vai trò và hỏi xem vai trò đó có nên có quyền siêu người dùng hay không.

Bạn cũng có thể chạy lệnh trực tiếp từ tài khoản.
Mã:
$ sudo -u postgres createuser --interactive
Bạn sẽ nhận được kết quả sau.
Mã:
Enter name of role to add: navjot
Shall the new role be a superuser? (y/n) y
Để tạo vai trò từ psql shell, sử dụng lệnh sau khi bạn đã vào shell.
Mã:
postgres-# CREATE ROLE username WITH SUPERUSER CREATEDB CREATEROLE LOGIN ENCRYPTED PASSWORD 'yourpassword';
Tại đây, chúng tôi đang tạo vai trò với các quyền như Siêu người dùng, Tạo cơ sở dữ liệu, Tạo vai trò và Đăng nhập.

Bạn có thể kiểm tra danh sách tất cả người dùng bằng \du lệnh.
Mã:
postgres-# \du List of roles Role name | Attributes | Member of
-----------+------------------------------------------------------------+----------- username | Superuser, Create role, Create DB | {} postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

Bước 4 - Tạo cơ sở dữ liệu​

Để tạo cơ sở dữ liệu, chúng ta sẽ sử dụng Lệnh createdb. Nếu đã đăng nhập vào tài khoản postgres, hãy chạy lệnh sau để tạo cơ sở dữ liệu mới.
Mã:
postgres@howtoforge:~$ createdb howtoforge
Bạn cũng có thể chạy lệnh từ tài khoản.
Mã:
$ sudo -u postgres createdb howtoforge
Bạn cũng có thể tạo cơ sở dữ liệu bằng cách sử dụng shell psql. Để thực hiện điều đó, hãy chạy lệnh sau từ shell.
Mã:
postgres-# CREATE DATABASE howtoforge;
Chúng ta có thể cấp quyền cho người dùng mà chúng ta vừa tạo trên cơ sở dữ liệu bằng cách chạy lệnh sau.
Mã:
postgres-# GRANT ALL PRIVILEGES ON DATABASE howtoforge TO username;
Bạn có thể kiểm tra danh sách tất cả các cơ sở dữ liệu bằng Lệnh \l.
Mã:
postgres-# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+----------------------- howtoforge| postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/postgres + | | | | | postgres=CTc/postgres+ | | | | | username=CTc/postgres postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres
(4 rows)

Bước 5 - Bật quyền truy cập từ xa​

Theo mặc định, máy chủ PostgreSQL chỉ lắng nghe trên giao diện máy chủ cục bộ. Để bật quyền truy cập từ xa, hãy mở tệp /etc/postgresql/14/main/postgresql.conf và thay đổi dòng #listen_addresses = 'localhost' bằng cách bỏ chú thích và sửa đổi như hiển thị bên dưới trong KẾT NỐI và XÁC THỰC section.
Mã:
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Khởi động lại dịch vụ PostgreSQL.
Mã:
$ sudo systemctl restart postgresql
Để xác minh thay đổi, hãy chạy lệnh sau lệnh.
Mã:
$ ss -nlt | grep 5432
Bạn sẽ nhận được kết quả đầu ra sau cho thấy PostgreSQL đang lắng nghe trên tất cả các giao diện.
Mã:
LISTEN 0 244 0.0.0.0:5432 0.0.0.0:*
LISTEN 0 244 [::]:5432 [::]:*
Bước tiếp theo là cấu hình máy chủ để chấp nhận các kết nối từ xa. Điều này được thực hiện bằng cách chỉnh sửa tệp /etc/postgresql/14/main/pg_hba.conf. Mở tệp để chỉnh sửa.
Mã:
$ sudo nano /etc/postgresql14/main/pg_hba.conf
Tại đây, bạn có thể cấu hình quyền truy cập vào từng cơ sở dữ liệu hoặc tất cả các cơ sở dữ liệu và xác định người dùng nào có thể truy cập chúng qua giao diện nào. Để xác thực mật khẩu hoạt động, hãy chọn scram-sha-256 làm phương pháp xác thực. Sau đây là một số ví dụ mà bạn có thể sử dụng.
Mã:
# TYPE DATABASE USER ADDRESS METHOD
# The username can access all databases from all locations using scram-sha256 password
host all username 0.0.0.0/0 scram-sha256
# The username can access only the howtoforge from all locations using scram-sha256 password
host howtoforge username 0.0.0.0/0 scram-sha256
# The username can access all databases from a trusted location (192.168.1.134) without a password
host all username 192.168.1.134 trust
Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Vẫn còn một bước cuối cùng nữa trước khi có thể truy cập từ xa. Bạn sẽ cần mở cổng tường lửa 5432. Chạy lệnh sau để mở cổng.
Mã:
$ sudo ufw allow 5432/tcp
Điều này sẽ cho phép bất kỳ địa chỉ IP nào truy cập PostgreSQL. Tuy nhiên, bạn nên hạn chế nó ở các phạm vi IP đáng tin cậy. Để thực hiện điều đó, hãy chạy lệnh sau thay thế. Lệnh sau cho phép truy cập vào PostgreSQL từ mạng con 192.168.1.0/24.
Mã:
$ sudo ufw allow proto tcp from 192.168.1.0/24 to any port 5432

Bước 6 - Cài đặt pgAdmin 4​

pgAdmin có thể được cài đặt dưới dạng gói Ubuntu hoặc sử dụng Python. Cài đặt nó như một gói ubuntu sẽ cài đặt máy chủ Apache theo mặc định. Tuy nhiên, chúng tôi sẽ sử dụng Nginx cho hướng dẫn của mình. Do đó, chúng ta sẽ cài đặt nó bằng Python wheel.

Tạo các thư mục dữ liệu và nhật ký cho pgAdmin.
Mã:
$ sudo mkdir /var/lib/pgadmin
$ sudo mkdir /var/log/pgadmin
Tạo một thư mục ứng dụng cho pgAdmin.
Mã:
$ sudo mkdir /opt/pgadmin
Chuyển sang thư mục gốc người dùng.
Mã:
$ sudo su -
Trước tiên, hãy cài đặt một số gói quan trọng mà Python yêu cầu.
Mã:
$ apt install build-essential python3-dev python3-venv python3-pip
Tạo môi trường ảo python và kích hoạt it.
Mã:
$ python3 -m venv /opt/pgadmin/venv
$ source /opt/pgadmin/venv/bin/activate
Cài đặt pgAdmin và uWSGI.
Mã:
(venv) root@postgresql:-$ pip install --upgrade pip
(venv) root@postgresql:-$ pip install --upgrade setuptools
(venv) root@postgresql:-$ pip install wheel
(venv) root@postgresql:-$ pip install pgadmin4
(venv) root@postgresql:-$ pip install uwsgi
Chạy tệp thiết lập của pgAdmin. Kiểm tra đường dẫn. Ubuntu 22.04 được cài đặt sẵn Python 3.10 theo mặc định và do đó, nó có thể nhìn thấy trong đường dẫn. Hãy đảm bảo bạn chọn đúng đường dẫn.
Mã:
(venv) root@postgresql:-$ python3 /opt/pgadmin/venv/lib/python3.10/site-packages/pgadmin4/setup.py
Thực hiện theo hướng dẫn thiết lập và ghi lại email và mật khẩu của bạn tại đây.
Mã:
NOTE: Configuring authentication for SERVER mode.
Enter the email address and password to use for the initial pgAdmin user account:
Email address: [emailprotected]
Password:
Retype password:
pgAdmin 4 - Application Initialisation
======================================
Vô hiệu hóa máy ảo môi trường.
Mã:
(venv) root@postgresql:-$ deactivate
Chuyển về người dùng bình thường.
Mã:
(venv) root@postgresql:-$ exit
Tạo người dùng hệ thống mới . Nó sẽ được sử dụng để chạy các tiến trình pgAdmin.
Mã:
$ sudo adduser --system --group --home /var/lib/pgadmin --disabled-login --shell /usr/sbin/nologin pgadmin
Vì chúng ta sẽ sử dụng Nginx, hãy cấp cho nó quyền sở hữu các thư mục trên cùng với người dùng mới được tạo.
Mã:
$ sudo chown -R pgadmin:nginx /var/lib/pgadmin /var/log/pgadmin /opt/pgadmin

Bước 7 - Tích hợp uWSGI và pgAdmin​

Bước tiếp theo là tạo một máy chủ WSGI lắng nghe tại socket UNIX /tmp/pgadmin.sock. Tạo một tệp cấu hình uWSGI có tên là pgadmin-uwsgi.ini bên trong thư mục /opt/pgadmin.
Mã:
$ sudo nano /opt/pgadmin/pgadmin-uwsgi.ini
Thêm mã sau vào đó. Đảm bảo phiên bản python trong đường dẫn khớp với phiên bản được cài đặt trong hệ thống của bạn.
Mã:
[uwsgi]
socket = /var/lib/pgadmin/pgadmin4.sock
chdir = /opt/pgadmin/venv/lib/python3.10/site-packages/pgadmin4/
module = pgAdmin4:application
threads = 20
processes = 1
mount = /=pgAdmin4:app
manage-script-name = true
chmod-socket = 660
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Bước 8 - Tạo tệp dịch vụ​

Bây giờ chúng ta đã cấu hình pgAdmin và uWSGI, chúng ta cần tạo tệp đơn vị dịch vụ systemd cho tệp này. Tệp dịch vụ sẽ cho phép máy chủ tự động khởi động uWSGI và phục vụ ứng dụng pgAdmin 4 trong thời gian khởi động.

Tạo và mở tệp dịch vụ để chỉnh sửa.
Mã:
$ sudo nano /etc/systemd/system/pgadmin-uwsgi.service
Dán mã sau vào đó.
Mã:
[Unit]
Description=pgadmin4 on uWSGI
Requires=network.target
After=network.target
[Service]
User=pgadmin
Group=nginx
Environment="PATH=/opt/pgadmin/venv/bin"
ExecStart=/opt/pgadmin/venv/bin/uwsgi --ini /opt/pgadmin/pgadmin-uwsgi.ini
[Install]
WantedBy=multi-user.target
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Như bạn thấy, chúng tôi đã chọn nginx làm nhóm để chạy quy trình pgAdmin vì chúng tôi sẽ sử dụng quy trình này để ủy quyền.

Bật và khởi động dịch vụ uWSGI.
Mã:
$ sudo systemctl enable pgadmin-uwsgi --now
Kiểm tra trạng thái của dịch vụ.
Mã:
$ sudo systemctl status pgadmin-uwsgi

Bước 9 - Cài đặt SSL​

Trước khi cấu hình Nginx, chúng ta cần thiết lập chứng chỉ SSL.

Để cài đặt chứng chỉ SSL bằng Let's Encrypt, chúng ta cần tải xuống công cụ Certbot. Chúng tôi sẽ sử dụng trình cài đặt gói Snapd cho mục đích đó.

Cài đặt trình cài đặt Snap.
Mã:
$ sudo apt install snapd
Đảm bảo rằng phiên bản Snapd của bạn được cập nhật.
Mã:
$ sudo snap install core
$ sudo snap refresh core
Cài đặt Certbot.
Mã:
$ sudo snap install --classic certbot
Sử dụng lệnh sau để đảm bảo lệnh Certbot chạy bằng cách tạo liên kết tượng trưng đến /usr/bin thư mục.
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Dừng máy chủ Nginx vì nó can thiệp vào công cụ Certbot.
Mã:
$ sudo systemctl stop nginx
Tạo SSL chứng chỉ.
Mã:
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d pgadmin.example.com
Lệnh trên sẽ tải chứng chỉ xuống thư mục /etc/letsencrypt/live/pgadmin.example.com trên máy chủ của bạn.

Tạo nhóm Diffie-Hellman chứng chỉ.
Mã:
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
Tạo thư mục gốc web thử thách để tự động gia hạn Let's Encrypt.
Mã:
$ sudo mkdir -p /var/lib/letsencrypt
Tạo Cron Job để gia hạn SSL. Nó sẽ chạy hàng ngày để kiểm tra chứng chỉ và gia hạn nếu cần. Để thực hiện việc đó, trước tiên, hãy tạo tệp /etc/cron.daily/certbot-renew và mở tệp đó để chỉnh sửa.
Mã:
$ sudo nano /etc/cron.daily/certbot-renew
Dán nội dung sau mã.
Mã:
#!/bin/sh
certbot renew --cert-name pgadmin.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Thay đổi quyền trên tệp tác vụ để làm cho tệp có thể thực thi được.
Mã:
$ sudo chmod +x /etc/cron.daily/certbot-renew

Bước 10 - Cài đặt và cấu hình Nginx​

Ubuntu đi kèm với phiên bản Nginx cũ hơn. Để cài đặt phiên bản mới nhất, bạn cần tải xuống kho lưu trữ Nginx chính thức.

Nhập khóa ký của Nginx.
Mã:
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \	| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Thêm kho lưu trữ cho phiên bản ổn định của Nginx.
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
Cập nhật hệ thống kho lưu trữ.
Mã:
$ sudo apt update
Cài đặt Nginx.
Mã:
$ sudo apt install nginx
Xác minh cài đặt.
Mã:
$ nginx -v
nginx version: nginx/1.20.2

Cấu hình Nginx​

Tạo và mở tệp /etc/nginx/conf.d/pgadmin.conf cho chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/conf.d/pgadmin.conf
Dán mã sau vào đó.
Mã:
server { listen 80; listen [::]:80; server_name pgadmin.example.com; return 301 https://$host$request_uri;
}
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name pgadmin.example.com; ssl_certificate /etc/letsencrypt/live/pgadmin.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/pgadmin.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/pgadmin.example.com/chain.pem; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_session_timeout 5m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers on; ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1; ssl_stapling on; ssl_stapling_verify on; ssl_dhparam /etc/ssl/certs/dhparam.pem; location /pgadmin4/ { include /etc/nginx/uwsgi_params; uwsgi_pass unix:/tmp/pgadmin4.sock; }
}
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Mở tệp /etc/nginx/nginx.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
Thêm dòng sau vào trước dòng include /etc/nginx/conf.d/*.conf;.
Mã:
server_names_hash_bucket_size 64;
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Xác minh tệp cấu hình Nginx cú pháp.
Mã:
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Khởi động lại dịch vụ Nginx để kích hoạt cấu hình mới.
Mã:
$ sudo systemctl restart nginx

Bước 11 - Cấu hình Tường lửa​

Trước khi truy cập pgAdmin, chúng ta cần đảm bảo rằng các cổng tường lửa đang mở. Nếu bạn đang sử dụng tường lửa ufw, hãy chạy các lệnh sau để mở cổng HTTP và HTTPs.
Mã:
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
Kiểm tra trạng thái của tường lửa.
Mã:
$ sudo ufw status
Bạn sẽ thấy một đầu ra tương tự.
Mã:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
5432/tcp ALLOW 192.168.1.0/24
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)

Bước 11 - Truy cập và cấu hình pgAdmin​

Trước khi truy cập pgAdmin, chúng ta cần đặt mật khẩu cho mặc định postgres người dùng.

Mở psql shell.
Mã:
$ sudo -u postgres psql
Chạy lệnh sau để đặt mật khẩu.
Mã:
postgres-# \password postgres
Enter new password for user "postgres":
Enter it again:
Thoát khỏi shell.
Mã:
postgres-# exit
Ngoài ra, hãy thay đổi quyền sở hữu của socket UNIX.
Mã:
$ sudo chown nginx:nginx /var/lib/pgadmin/pgadmin4.sock
Mở URL https://pgadmin.example.com trong trình duyệt của bạn và bạn sẽ thấy màn hình đăng nhập sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22357%22%3E%3C/svg%3E


Nhập thông tin đăng nhập người dùng đã tạo ở bước 6 để đăng nhập và truy cập bảng điều khiển sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22324%22%3E%3C/svg%3E


Bước tiếp theo là thêm máy chủ PostgreSQL cục bộ vào đó. Nhấp vào nút Thêm máy chủ mới để bắt đầu.


pgadmin-register-server.png



Đặt tên cho kết nối và chuyển sang tab Kết nối.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22552%22%3E%3C/svg%3E


Nhập localhost làm Tên máy chủ và để trống trường cổng. Thêm mật khẩu đã tạo trước đó và kiểm tra tùy chọn Lưu mật khẩu?. Nhấp vào nút Lưu để hoàn tất việc thêm máy chủ.

Sau khi hoàn tất, bạn sẽ thấy màn hình bảng điều khiển sau cho máy chủ PostgreSQL của mình.


pgadmin-postgresql-dashboard.png



Chúng ta hãy tạo một bảng mới và thêm một số dữ liệu vào cơ sở dữ liệu của mình.

Từ bảng điều khiển, nhấp vào dấu mũi tên bên cạnh PostgreSQL - Local để mở rộng menu cây. Tiếp theo, mở rộng Databases, nhấp vào tên cơ sở dữ liệu bạn đã thêm (howtoforge, trong ví dụ của chúng tôi), rồi Schemas. Bạn sẽ thấy menu sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22288%22%20height=%22720%22%3E%3C/svg%3E


Nhấp chuột phải vào tùy chọn Tables rồi chọn Create >> Tùy chọn menu Bảng như được hiển thị.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22548%22%20height=%22182%22%3E%3C/svg%3E


Điều này sẽ mở cửa sổ bật lên Tạo bảng như được hiển thị bên dưới. Nhập tên cho bảng.


pgadmin-create-table-popup.png



Chuyển sang tab Cột. Ở đây chúng ta sẽ định nghĩa một số cột cơ bản cho bảng.

Nhấp vào dấu cộng để thêm cột đầu tiên. Chúng ta đã đặt tên cho nó là ID với số nguyên là kiểu dữ liệu của nó. Mỗi bảng phải có một khóa chính. Để biến ID thành khóa chính cho bảng, hãy chuyển đổi nút cho Khóa chính.

Tiếp theo, chúng ta thêm một cột khác cho Tên với ký tự thay đổi là kiểu dữ liệu. Để hạn chế độ dài tên, chúng ta đã định nghĩa 30 là độ dài của nó. Hiện tại, như vậy là đủ cho ví dụ của chúng ta. Nhấp vào nút Lưu khi hoàn tất để tạo bảng.


pgadmin-add-table-columns.png



Bây giờ chúng ta đã có bảng với một số cột, bước tiếp theo là điền một số giá trị vào bảng. Để thêm dữ liệu, nhấp chuột phải vào tên bảng của bạn trong Trình duyệt, di chuyển con trỏ qua Scripts và chọn tùy chọn INSERT Script.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22465%22%20height=%22192%22%3E%3C/svg%3E


Nó sẽ mở một tab mới trên bảng điều khiển với một phần được điền Lệnh INSERT. Thay thế dấu chấm hỏi bằng dữ liệu phù hợp mà bạn muốn điền. Đây là dữ liệu chúng tôi sử dụng cho bảng của mình.
Mã:
INSERT INTO public."table-01"(
"ID", "Name")
VALUES (1, 'Navjot'), (2, Adam), (3, 'Roxy');

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22666%22%20height=%22178%22%3E%3C/svg%3E


Nhấp vào nút hình tam giác nghiêng để thực hiện truy vấn SQL và thêm dữ liệu.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22111%22%20height=%2298%22%3E%3C/svg%3E


Tiếp theo, bạn sẽ muốn xem dữ liệu vừa thêm vào. Để thực hiện điều đó, hãy nhấp chuột phải vào tên bảng và chọn tùy chọn Xem/Chỉnh sửa dữ liệu rồi nhấp vào tùy chọn Tất cả các hàng.


padmin-view-data-option.png



Điều này sẽ mở một tab khác trong bảng điều khiển với dữ liệu của bạn hiển thị trong tab Đầu ra dữ liệu của bảng điều khiển bên dưới.


pgadmin-view-data.png



Cuối cùng, bạn đã tạo xong cơ sở dữ liệu và thêm một số dữ liệu vào đó bằng pgAdmin. Bạn có thể làm nhiều hơn thế nữa khi sử dụng pgAdmin.

PostgreSQL đi kèm với các tiện ích tích hợp để sao lưu và khôi phục dữ liệu. pgAdmin hỗ trợ chúng theo mặc định nhưng để nó hoạt động, bạn có thể cần thêm đường dẫn đến các tệp nhị phân Postgre của mình. Để thực hiện việc đó, hãy mở menu Tệp ở trên cùng và chọn tùy chọn Tùy chọn.


pgadmin-preferences-menu.png



Nó sẽ mở một cửa sổ bật lên mới với nhiều tùy chọn. Chọn tùy chọn Đường dẫn >> Đường dẫn nhị phân từ thanh bên trái. Tiếp theo, cuộn xuống phần Đường dẫn nhị phân PostgreSQL của cửa sổ bật lên.


pgadmin-postgresql-path-setting.png



Nhập /usr/bin làm đường dẫn trước mục nhập máy chủ PostgreSQL 14 và chọn dấu kiểm trên đó. Nhấp vào nút Lưu khi bạn hoàn tất. Bạn có thể sử dụng lệnh Sao lưu và khôi phục thông qua giao diện pgAdmin.

Kết luận​

Bạn đã học cách cài đặt PostgreSQL và pgAdmin trên máy chủ Ubuntu 22.04. Bạn cũng đã cấu hình pgAdmin để kết nối với dịch vụ PostgreSQL và thực hiện các thao tác cơ bản. Nếu bạn có thắc mắc, hãy đăng chúng trong phần bình luận bên dưới.
 
Back
Bên trên