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.
[*]
Hệ thống của bạn cần một số gói.
Một số gói này có thể đã được cài đặt trên hệ thống của bạn.
Gói
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.
Thêm kho lưu trữ APT vào danh sách nguồn của bạn.
Cập nhật hệ thống kho lưu trữ.
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ụ.
Bạn có thể thấy rằng dịch vụ được bật và chạy theo mặc định.
Postgres hỗ trợ nhiều phương thức xác thực, chẳng hạn như sau
Cài đặt PostgreSQL sẽ tạo một tài khoản người dùng
Truy cập shell PostgreSQL bằng cách sử dụng
Bạn sẽ được đăng nhập vào PostgreSQL vỏ.
Loại
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
Cờ
Bạn cũng có thể chạy lệnh trực tiếp từ tài khoản.
Bạn sẽ nhận được kết quả sau.
Để tạo vai trò từ
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
Bạn cũng có thể chạy lệnh từ tài khoản.
Bạn cũng có thể tạo cơ sở dữ liệu bằng cách sử dụng shell
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.
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ư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.
Để xác minh thay đổi, hãy chạy lệnh sau lệnh.
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.
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
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
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.
Đ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
Tạo các thư mục dữ liệu và nhật ký cho pgAdmin.
Tạo một thư mục ứng dụng cho pgAdmin.
Chuyển sang thư mục gốc người dùng.
Trước tiên, hãy cài đặt một số gói quan trọng mà Python yêu cầu.
Tạo môi trường ảo python và kích hoạt it.
Cài đặt pgAdmin và 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.
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.
Vô hiệu hóa máy ảo môi trường.
Chuyển về người dùng bình thường.
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.
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.
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.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Tạo và mở tệp dịch vụ để chỉnh sửa.
Dán mã sau vào đó.
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
Bật và khởi động dịch vụ uWSGI.
Kiểm tra trạng thái của dịch vụ.
Để 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 bảo rằng phiên bản Snapd của bạn được cập nhật.
Cài đặt 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
Dừng máy chủ Nginx vì nó can thiệp vào công cụ Certbot.
Tạo SSL chứng chỉ.
Lệnh trên sẽ tải chứng chỉ xuống thư mục
Tạo nhóm Diffie-Hellman chứng chỉ.
Tạo thư mục gốc web thử thách để tự động gia hạn Let's Encrypt.
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
Dán nội dung sau mã.
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.
Nhập khóa ký của Nginx.
Thêm kho lưu trữ cho phiên bản ổn định của Nginx.
Cập nhật hệ thống kho lưu trữ.
Cài đặt Nginx.
Xác minh cài đặt.
Dán mã sau vào đó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Mở tệp
Thêm dòng sau vào trước dòng
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.
Khởi động lại dịch vụ Nginx để kích hoạt cấu hình mới.
Kiểm tra trạng thái của tường lửa.
Bạn sẽ thấy một đầu ra tương tự.
Mở
Chạy lệnh sau để đặt mật khẩu.
Thoát khỏi shell.
Ngoài ra, hãy thay đổi quyền sở hữu của socket UNIX.
Mở URL
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.
Đặ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
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.
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.
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.
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
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.
Đ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.
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.
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.
Nhậ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
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
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
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'
Mã:
$ sudo apt update
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ướ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ộ.
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
psql
lệnh.
Mã:
postgres@howtoforge:~$ psql
Mã:
psql (14.3 (Ubuntu 14.3-1.pgdg22.04+1))
Type "help" for help.
postgres=#
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ệnhcreateuser
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
--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
Mã:
Enter name of role to add: navjot
Shall the new role be a superuser? (y/n) y
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';
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ệnhcreatedb
. 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
Mã:
$ sudo -u postgres createdb howtoforge
psql
. Để thực hiện điều đó, hãy chạy lệnh sau từ shell.
Mã:
postgres-# CREATE DATABASE howtoforge;
Mã:
postgres-# GRANT ALL PRIVILEGES ON DATABASE howtoforge TO username;
\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;
Khởi động lại dịch vụ PostgreSQL.
Mã:
$ sudo systemctl restart postgresql
Mã:
$ ss -nlt | grep 5432
Mã:
LISTEN 0 244 0.0.0.0:5432 0.0.0.0:*
LISTEN 0 244 [::]:5432 [::]:*
/etc/postgresql/14/main/pg_hba.conf
. Mở tệp để chỉnh sửa.
Mã:
$ sudo nano /etc/postgresql14/main/pg_hba.conf
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
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
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
Mã:
$ sudo mkdir /opt/pgadmin
Mã:
$ sudo su -
Mã:
$ apt install build-essential python3-dev python3-venv python3-pip
Mã:
$ python3 -m venv /opt/pgadmin/venv
$ source /opt/pgadmin/venv/bin/activate
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
Mã:
(venv) root@postgresql:-$ python3 /opt/pgadmin/venv/lib/python3.10/site-packages/pgadmin4/setup.py
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
======================================
Mã:
(venv) root@postgresql:-$ deactivate
Mã:
(venv) root@postgresql:-$ exit
Mã:
$ sudo adduser --system --group --home /var/lib/pgadmin --disabled-login --shell /usr/sbin/nologin pgadmin
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
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
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
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
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
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ã:
$ sudo snap install core
$ sudo snap refresh core
Mã:
$ sudo snap install --classic certbot
/usr/bin
thư mục.
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Mã:
$ sudo systemctl stop nginx
Mã:
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d pgadmin.example.com
/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
Mã:
$ sudo mkdir -p /var/lib/letsencrypt
/etc/cron.daily/certbot-renew
và mở tệp đó để chỉnh sửa.
Mã:
$ sudo nano /etc/cron.daily/certbot-renew
Mã:
#!/bin/sh
certbot renew --cert-name pgadmin.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
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
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
Mã:
$ sudo apt update
Mã:
$ sudo apt install nginx
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
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; }
}
Mở tệp
/etc/nginx/nginx.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf;
.
Mã:
server_names_hash_bucket_size 64;
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
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ửaufw
, 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
Mã:
$ sudo ufw status
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 địnhpostgres
người dùng.Mở
psql
shell.
Mã:
$ sudo -u postgres psql
Mã:
postgres-# \password postgres
Enter new password for user "postgres":
Enter it again:
Mã:
postgres-# exit
Mã:
$ sudo chown nginx:nginx /var/lib/pgadmin/pgadmin4.sock
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.

Đặ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.

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.

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.

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.

Đ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.

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.

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.

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.