Hướng dẫn cài đặt PostgreSQL 12 trên CentOS 8

PostgreSQL là gì?

PostgreSQL là một hệ thống cơ sở dữ liệu quan hệ đối tượng tiên tiến, mạnh mẽ, được sử dụng rộng rãi, đa nền tảng và được biết đến với kiến ​​trúc đã được chứng minh, độ tin cậy, tính toàn vẹn dữ liệu, bộ tính năng mạnh mẽ và khả năng mở rộng.
 

Cài đặt PostgreSQL 12 trên CentOS 8

1. Vô hiệu hóa tích hợp PostgreSQL mô-đun bằng cách chạy như sau lệnh dnf.

dnf -qy module disable postgresql

2. Kích hoạt chính thức kho lưu trữ PostgreSQL Yum như được hiển thị.

# dnf install https://doad.postgresql.org/pub/repose/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

3. Tiếp theo, cài đặt PostgreQuery 12 gói máy chủ và máy khách.

# dnf install  postgresql12 postgresql12-server


4. Sau khi cài đặt hoàn tất, hãy khởi tạo PostgreSQL cơ sở dữ liệu, sau đó bắt đầu PostgreSQL-12 dịch vụ và cho phép nó tự động khởi động khi khởi động hệ thống. Sau đó kiểm tra xem dịch vụ có hoạt động hay không và được bật như hiển thị.Cài đặt PostgreSQL trên CentOS 8

# /usr/pgsql-12/bin/postgresql-12-setup initdb 
# systemctl start postgresql-12
# systemctl enable postgresql-12
# systemctl status postgresql-12
# systemctl is-enabled postgresql-12

Cấu hình cơ sở dữ liệu PostgreSQL

5. Tiếp theo, bảo vệ Bưu điện tài khoản người dùng và tài khoản người dùng quản trị cơ sở dữ liệu. Bắt đầu bằng cách tạo mật khẩu cho tài khoản người dùng hệ thống Postgres bằng tiện ích passwd như được hiển thị.

# passwd postgres

 

​​​​​​[root@hosts ~]# passwd postgres
Changing password for user postgres.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

Tạo 1 user hệ thống và tạo một mật khẩu an toàn và mạnh mẽ cho người dùng với vai trò cơ sở dữ liệu quản trị PostgreSQL như sau.

# su - postgres
$ psql -c "ALTER USER postgres WITH PASSWORD 'postgressql';"
$ exit

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

# listen only localhost by default
[root@postgresql ~]# grep listen_addresses /var/lib/pgsql/12/data/postgresql.conf
#listen_addresses = 'localhost' # what IP address(es) to listen on;

# authentication methods by default
[root@postgresql ~]# grep -v -E "^#|^$" /var/lib/pgsql/12/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

Tạo user và kết nỗi vào PostgreSQL Server.

# add an PostgreSQL user and his Database with PostgreSQL admin user
[root@postgresql ~]# su - postgres
[postgres@postgresql ~]$ createuser cent
[postgres@postgresql ~]$ createdb testdb -O cent

# show users and databases
[postgres@postgresql ~]$ psql -c "select usename from pg_user;"
 usename
----------
 postgres
 cent
(2 rows)

[postgres@postgresql ~]$ 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    | cent     | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
(4 rows)

 

Kết nối đến PostgreSQL Database với user ở phía trên

# connect to testdb

 

[cent@postgresql ~]$ 
psql testdb

psql (12.1)
Type "help" for help.

# show user roles
testdb=> \du
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 cent      |                                                            | {}
 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    | cent     | 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 | cent
(1 row)

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

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

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

testdb=> \dt 
Did not find any relations.

# exit
testdb=> \q 

# remove testdb
[cent@postgresql ~]$ 
dropdb testdb
[cent@postgresql ~]$ 
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)

 







 

**Vui lòng đăng nhập để có thể trả lời bài viết này**