Cài đặt Postgresql 14 trên Ubuntu 22.04 - Install Postgresql 14 Ubuntu 22.04

Trong thế giới phát triển ứng dụng và quản lý cơ sở dữ liệu ngày nay, Postgresql đã khẳng định vị thế của mình là một hệ quản trị cơ sở dữ liệu mã nguồn mở đáng tin cậy và mạnh mẽ. PostgreSQL 14 với những cải tiến và tính năng hấp dẫn hứa hẹn mang đến cho người dùng những trải nghiệm tuyệt vời. Trong bài viết này, chúng ta sẽ hướng dẫn cách install PostgreSQL 14 trên hệ điều hành Ubuntu 22.04.

[1] Install và khởi động PostgreSQL 14 trên Ubuntu 22.04

root@www:~# apt -y install postgresql-14

[2] Theo cài đặt mặc định, chỉ có thể kết nối với máy chủ PostgreSQL từ Localhost bằng xác thực ngang hàng

Tham khảo trang web chính thức bên dưới để biết chi tiết về các phương thức xác thực. ⇒ https://www.postgresql.jp/document/10/html/auth-pg-hba-conf.html

# listen only localhost by default
root@www:~# grep listen_addresses /etc/postgresql/14/main/postgresql.conf
#listen_addresses = 'localhost' # what IP address(es) to listen on;
# authentication methods by default
root@www:~# grep -v -E "^#|^$" /etc/postgresql/14/main/pg_hba.conf
local   all             postgres                                peer
local   all             all                                     peer
host    all             all             127.0.0.1/32            scram-sha-256
host    all             all             ::1/128                 scram-sha-256
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            scram-sha-256
host    replication     all             ::1/128                 scram-sha-256

[3] Người dùng OS và người dùng PostgreSQL có tên giống nhau để kết nối với máy chủ PostgreSQL

# add an OS user
root@www:~# adduser ubuntu
# add an PostgreSQL user and his Database with PostgreSQL admin user
root@www:~# su - postgres
postgres@www:~$ createuser ubuntu
postgres@www:~$ createdb testdb -O ubuntu
# show users and databases
postgres@www:~$ psql -c "select usename from pg_user;"
 usename
----------
 postgres
 ubuntu
(2 rows)

postgres@www:~$ 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    | ubuntu   | UTF8     | C.UTF-8 | C.UTF-8 |
(4 rows)

[4] Kết nối với cơ sở dữ liệu PostgreSQL với người dùng được thêm ở trên

# connect to testdb
ubuntu@www:~$ psql testdb
psql (14.2 (Ubuntu 14.2-1ubuntu1))
Type "help" for help.

# show user roles
testdb=> \du
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 ubuntu    |                                                            | {}

# show databases
testdb=> \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    | ubuntu   | UTF8     | C.UTF-8 | C.UTF-8 |
(4 rows)

# create a test table
testdb=> create table test_table (no int, name text); 
CREATE TABLE

# show tables
testdb=> \dt 
          List of relations
 Schema |    Name    | Type  | Owner
--------+------------+-------+--------
 public | test_table | table | ubuntu
(1 row)

# insert data to test table
testdb=> insert into test_table (no,name) values (01,'Ubuntu'); 
INSERT 0 1

# confirm
testdb=> select * from test_table; 
 no |  name
----+--------
  1 | Ubuntu
(1 row)

# remove test table
testdb=> drop table test_table; 
DROP TABLE

testdb=> \dt 
Did not find any relations.

# exit
testdb=> \q 

# remove testdb
ubuntu@www:~$ dropdb testdb
ubuntu@www:~$ 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          +
           |          |          |         |         | post

gres=CTc/postgres
 template1 | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
           |          |          |         |         | postgres=CTc/postgres
(3 rows)

Qua bài viết này, chúng ta đã cùng nhau tìm hiểu quá trình install PostgreSQL 14 trên hệ điều hành Ubuntu 22.04 và khám phá những tính năng hấp dẫn mà nó mang lại. Postgresql 14 đã chứng minh là một giải pháp đáng tin cậy và mạnh mẽ cho việc quản lý cơ sở dữ liệu, đáp ứng mọi yêu cầu và nhu cầu của dự án và ứng dụng.