PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ nguồn mở phổ biến và mạnh mẽ đã được sử dụng để chạy các ứng dụng quan trọng. PostgreSQL dựa trên POSTGRES 4.2 tại phòng khoa học máy tính Berkeley, Đại học California.
PostgreSQL được thiết kế để chạy trên các nền tảng tương tự UNIX. Tuy nhiên, PostgreSQL sau đó cũng được điều chỉnh linh động để có thể chạy được trên nhiều nền tảng khác nhau như Mac OS X, Solaris và Windows.
PostgreSQL là một phần mềm mã nguồn mở miễn phí. Mã nguồn của phần mềm khả dụng theo license của PostgreSQL, một license nguồn mở tự do. Theo đó, bạn sẽ được tự do sử dụng, sửa đổi và phân phối PostgreSQL dưới mọi hình thức.
PostgreSQL không yêu cầu quá nhiều công tác bảo trì bởi có tính ổn định cao. Do đó, nếu bạn phát triển các ứng dụng dựa trên PostgreSQL, chi phí sở hữu sẽ thấp hơn so với các hệ thống quản trị dữ liệu khác.
Nếu bạn muốn kiểm tra tất cả các tính năng thú vị của cơ sở dữ liệu PostgreSQL, hãy truy cập trang Feature Metrix để tìm hiểu thêm. Hướng dẫn này sẽ đi thẳng vào cài đặt PostgreSQL trên hệ thống Linux Ubuntu 20.04 | 22.04.
Bước 1: Cập nhật hệ thống
sudo apt update
sudo apt -y upgrade
Sau khi cập nhật hệ thống, chúng ta có thể tiến hành cài đặt máy chủ cơ sở dữ liệu PostgreSQL trên Ubuntu 20.04 | 22.04 Linux.
Bước 2: Cài đặt Máy chủ cơ sở dữ liệu PostgreSQL trên Ubuntu 20.04 | 22.04
Chúng ta sẽ cài đặt phiên bản mặc định của máy chủ cơ sở dữ liệu PostgreSQL có sẵn trên Ubuntu 20.04 | 22.04 mà không cần định cấu hình các kho lưu trữ ngược dòng của dự án.
sudo apt install postgresql postgresql-client
Xác nhận cài đặt package để tiếp tục.
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
apport apport-symptoms at bc bcache-tools bolt byobu cryptsetup cryptsetup-run ethtool fonts-ubuntu-console fwupd fwupd-signed git git-man htop
initramfs-tools-bin klibc-utils kpartx landscape-common libarchive13 liberror-perl libevent-2.1-7 libfl2 libfwupd2 libfwupdplugin1 libgcab-1.0-0
libgpgme11 libgusb2 libklibc libmspack0 libsgutils2-2 libsmbios-c2 libtss2-esys0 liburcu6 libutempter0 libxmlb1 libxmlsec1 libxmlsec1-openssl lz4
open-vm-tools pastebinit patch pollinate python3-apport python3-attr python3-automat python3-click python3-colorama python3-constantly
python3-debconf python3-debian python3-hamcrest python3-hyperlink python3-incremental python3-newt python3-problem-report python3-pyasn1
python3-pyasn1-modules python3-service-identity python3-systemd python3-twisted python3-twisted-bin python3-zope.interface run-one screen sg3-utils
sosreport tmux tpm-udev update-notifier-common
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
libllvm9 libpq5 libsensors-config libsensors5 postgresql-12 postgresql-client-12 postgresql-client-common postgresql-common sysstat
Suggested packages:
lm-sensors postgresql-doc postgresql-doc-12 libjson-perl isag
The following NEW packages will be installed:
libllvm9 libpq5 libsensors-config libsensors5 postgresql postgresql-12 postgresql-client postgresql-client-12 postgresql-client-common
postgresql-common sysstat
0 upgraded, 11 newly installed, 0 to remove and 4 not upgraded.
Need to get 30.0 MB of archives.
After this operation, 116 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Services được tự động bắt đầu khi cài đặt. Bạn có thể xác nhận xem nó có đang chạy hay không bằng lệnh:
$ systemctl status postgresql.service
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Thu 2019-12-26 07:15:55 UTC; 1min 46s ago
Main PID: 3953 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 614)
Memory: 0B
CGroup: /system.slice/postgresql.service
Dec 26 07:15:55 ubuntu20 systemd[1]: Starting PostgreSQL RDBMS...
Dec 26 07:15:55 ubuntu20 systemd[1]: Started PostgreSQL RDBMS.
Bước 3: Thay đổi IP lắng nghe dịch vụ (Tùy chọn)
# Allow bind to all addresses
listen_addresses = '*'
# Allow bind to one IP addresses
listen_addresses = '192.168.10.20'
sudo systemctl restart postgresql
firewall-cmd --add-port=5432/tcp –permanent
firewall-cmd –reload
firewall-cmd --query-port=5432/tcp
Bước 4: Cập nhật mật khẩu của người dùng quản trị PostgreSQL
sudo su - postgres
psql -c "alter user postgres with password 'MySt0ngDBP@ss'"
createuser dbuser
createdb testdb -O dbuser
$ psql testdb
psql (12.1 (Ubuntu 12.1-1))
Type "help" for help.
testdb=# alter user dbuser with password 'StrongPassword';
ALTER ROLE
testdb=# \q
postgres@ubuntu20:~$ dropdb testdb
$ psql -l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+---------+---------+-----------------------
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
testdb | dbuser | UTF8 | C.UTF-8 | C.UTF-8 |
(4 rows)
Bước 5: Cài đặt giao diện quản trị phpPgAdmin
sudo apt -y install phppgadmin php-pgsql
$ sudo vim /etc/phppgadmin/config.inc.php
$conf['extra_login_security'] = false;
$conf['owned_only'] = true;
sudo nano /etc/apache2/conf-enabled/phppgadmin.conf
Require local
Require ip 192.168.10.0/24
Require ip 10.10.0.0/24
sudo systemctl restart postgresql apache2