Cài đặt Postgresql 14 trên Fedora 35 - Install Postgresql 14 on Fedora 35

Bạn đang tìm hiểu cách triển khai một hệ quản trị cơ sở dữ liệu mạnh mẽ và tiên tiến trên Fedora 35? Hãy cùng chúng tôi khám phá cách install PostgreSQL 14 trên hệ điều hành Fedora 35 để xây dựng môi trường lưu trữ dữ liệu đáng tin cậy và hiệu quả. Bài viết dưới đây sẽ hướng dẫn bạn qua từng bước cụ thể, giúp bạn bắt đầu một hành trình đầy thú vị trong việc quản lý cơ sở dữ liệu của mình trên Fedora 35

[1]    Install and khởi tạo PostgreSQL 14 trên Fedora 35

[root@www ~]# dnf module -y install postgresql:14/server
[root@www ~]# postgresql-setup --initdb
 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
 
[root@www ~]# systemctl enable --now postgresql

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

Tham khảo link dưới đây để hiểu rõ hơn về phương pháp xác thực này:

https://www.postgresql.jp/document/10/html/auth-pg-hba-conf.html

# listen only localhost by default
[root@www ~]# grep listen_addresses /var/lib/pgsql/data/postgresql.conf
#listen_addresses = 'localhost' # what IP address(es) to listen on;
# authentication methods by default
[root@www ~]# grep -v -E "^#|^$" /var/lib/pgsql/data/pg_hba.conf
local   all             all                                     peer
host    all             all             127.0.0.1/32            ident
host    all             all             ::1/128                 ident
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            ident
host    replication     all             ::1/128                 ident

[3]   Theo xác thực peer, cần tên người dùng OS và tên người dùng PostgreSQL trùng với kết nối PostgreSQL Server

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

[postgres@www ~]$ psql -l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 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
 testdb    | fedora   | UTF8     | en_US.UTF-8 | en_US.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
[fedora@www ~]$ psql testdb
psql (14.0)
Type "help" for help.

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

# show databases
testdb=> \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 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
 testdb    | fedora   | UTF8     | en_US.UTF-8 | en_US.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 | fedora
(1 row)

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

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

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

testdb=> \dt 
Did not find any relations.

# exit
testdb=> \q 

# remove testdb
[fedora@www ~]$ dropdb testdb
[fedora@www ~]$ psql -l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 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
(3 rows)

Trong bài viết này, chúng tôi đã hướng dẫn bạn một cách chi tiết và dễ hiểu về cách install PostgreSQL 14 trên hệ điều hành Fedora 35. Việc triển khai một hệ quản trị cơ sở dữ liệu như PostgreSQL có thể giúp bạn xây dựng một môi trường lưu trữ dữ liệu mạnh mẽ và linh hoạt.