Cài đặt PostgreSQL 15 trên Debian 12 - Install PostgreSQL 15 on Debian 12

Khi bắt đầu hành trình khám phá cơ sở dữ liệu, việc install PostgreSQL 15 trên Debian 12 là một bước quan trọng để tạo ra môi trường mạnh mẽ cho việc lưu trữ và quản lý dữ liệu. Với phiên bản PostgreSQL mới nhất, chúng ta sẽ khám phá những tính năng cải tiến và sự ổn định của nền tảng này. Trong hướng dẫn này, chúng ta sẽ dẫn bạn qua từng bước cụ thể để thành công install PostgreSQL 15 trên Debian 12, giúp bạn sẵn sàng để khai thác tiềm năng của cơ sở dữ liệu này cho các dự án tương lai.

[1]    Install PostgreSQL 15 trên Debian 12

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

[2]    Theo cài đặt mặc định, bạn chỉ có thể kết nối tới máy chủ PostgreSQL từ Localhost với phương thức xác thực peer

Hãy tham khảo trang chính thức dưới đây để tìm hiểu thêm về các phương thức xác thực chi tiết. Trang chính 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/15/main/postgresql.conf
#listen_addresses = 'localhost' # what IP address(es) to listen on;
# authentication methods by default
root@www:~# grep -v -E "^#|^$" /etc/postgresql/15/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] Với xác thực peer, sử dụng người dùng hệ thống và người dùng PostgreSQL có cùng tên để kết nối tới máy chủ PostgreSQL

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

postgres@www:~$ psql -l
                                                 List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    | ICU Locale | Locale Provider |   Access privileges
-----------+----------+----------+-------------+-------------+------------+-----------------+-----------------------
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            | =c/postgres          +
           |          |          |             |             |            |                 | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            | =c/postgres          +
           |          |          |             |             |            |                 | postgres=CTc/postgres
 testdb    | debian   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            |
(4 rows)

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

# connect to testdb
debian@www:~$ psql testdb
psql (15.3 (Debian 15.3-0+deb12u1))
Type "help" for help.

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

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

testdb=> \l
                                                 List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    | ICU Locale | Locale Provider |   Access privileges
-----------+----------+----------+-------------+-------------+------------+-----------------+-----------------------
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            | =c/postgres          +
           |          |          |             |             |            |                 | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            | =c/postgres          +
           |          |          |             |             |            |                 | postgres=CTc/postgres
 testdb    | debian   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            |
(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 | debian
(1 row)

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

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

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

testdb=> \dt 
Did not find any relations.

# exit
testdb=> \q 

# remove testdb
debian@www:~$ dropdb testdb
debian@www:~$ psql -l
                                                 List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    | ICU Locale | Locale Provider |   Access privileges
-----------+----------+----------+-------------+-------------+------------+-----------------+-----------------------
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            | =c/postgres          +
           |          |          |             |             |            |                 | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            | =c/postgres          +
           |          |          |             |             |            |                 | postgres=CTc/postgres
(3 rows)

Tổng kết lại, qua bài viết này chúng ta đã tìm hiểu cách install PostgreSQL 15 trên hệ điều hành Debian 12. Quá trình cài đặt và cấu hình PostgreSQL đã được hướng dẫn chi tiết, từ việc tạo người dùng đến thiết lập quyền truy cập vào cơ sở dữ liệu. Chúng ta cũng đã tìm hiểu về cách kết nối vào PostgreSQL và thực hiện các tác vụ cơ bản. Việc sử dụng một hệ quản trị cơ sở dữ liệu như PostgreSQL đóng một vai trò quan trọng trong việc quản lý dữ liệu của các ứng dụng và dự án. Hy vọng rằng thông tin trong bài viết sẽ giúp bạn thành công trong việc install PostgreSQL 15 trên Debian 12 và khám phá thêm về các khả năng mạnh mẽ mà nó mang lại.

Mọi người cũng tìm kiếm: install postgresql debian 12, postgresql 15, postgresql ya, install postgresql 15 debian, install postgresql 15, debian install postgresql 15, cài postgresql