Android

Cách cài đặt postgresql trên centos 8

CentOS 8 Server - #8 Install PostgreSQL

CentOS 8 Server - #8 Install PostgreSQL

Mục lục:

Anonim

PostgreSQL hoặc Postgres là một hệ thống quản lý cơ sở dữ liệu quan hệ đối tượng mục đích chung nguồn mở với nhiều tính năng nâng cao cho phép bạn xây dựng các môi trường chịu lỗi hoặc các ứng dụng phức tạp.

Trong hướng dẫn này, chúng tôi sẽ thảo luận về cách cài đặt máy chủ cơ sở dữ liệu PostgreSQL trên CentOS 8. Trước khi chọn cài đặt phiên bản nào, hãy đảm bảo rằng các ứng dụng của bạn hỗ trợ nó.

Chúng tôi cũng sẽ khám phá những điều cơ bản về quản trị cơ sở dữ liệu PostgreSQL.

Điều kiện tiên quyết

Để có thể cài đặt các gói, bạn cần phải đăng nhập với quyền root hoặc người dùng với quyền sudo.

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

Tại thời điểm viết bài viết này, có hai phiên bản máy chủ PostgreSQL có sẵn để cài đặt từ kho lưu trữ CentOS tiêu chuẩn: phiên bản 9.6 và 10.0.

Để liệt kê các luồng mô-đun PostgreSQL có sẵn, gõ:

dnf module list postgresql

Đầu ra cho thấy mô-đun postgresql có sẵn với hai luồng. Mỗi luồng có hai hồ sơ: máy chủ và máy khách. Luồng 10 với máy chủ hồ sơ là mặc định:

CentOS-8 - AppStream Name Stream Profiles Summary postgresql 10 client, server PostgreSQL server and client module postgresql 9.6 client, server PostgreSQL server and client module

  1. Để cài đặt luồng mặc định, loại máy chủ PostgreSQL phiên bản 10.0:

    sudo dnf install @postgresql:10

    Để cài đặt loại máy chủ PostgreSQL phiên bản 9.6:

    sudo dnf install @postgresql:9.6

Bạn cũng có thể muốn cài đặt gói contrib cung cấp một số tính năng bổ sung cho cơ sở dữ liệu PostgreQuery:

sudo dnf install postgresql-contrib

Sau khi cài đặt hoàn tất, hãy khởi tạo cơ sở dữ liệu PostgreSQL bằng lệnh sau:

sudo postgresql-setup initdb

Initializing database… OK

Bắt đầu dịch vụ PostgreSQL và cho phép nó bắt đầu khởi động:

sudo systemctl enable --now postgresql

Sử dụng công cụ psql để xác minh cài đặt bằng cách kết nối với máy chủ cơ sở dữ liệu PostgreSQL và in phiên bản của nó:

sudo -u postgres psql -c "SELECT version();"

PostgreSQL 10.6 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 8.2.1 20180905 (Red Hat 8.2.1-3), 64-bit

Các vai trò và phương thức xác thực của PostgreSQL

PostgreSQL xử lý các quyền truy cập cơ sở dữ liệu bằng cách sử dụng khái niệm vai trò. Một vai trò có thể đại diện cho người dùng cơ sở dữ liệu hoặc một nhóm người dùng cơ sở dữ liệu.

PostgreSQL hỗ trợ nhiều phương thức xác thực. Các phương pháp được sử dụng phổ biến nhất là:

  • Tin cậy - Một vai trò có thể kết nối mà không cần mật khẩu, miễn là các điều kiện được xác định trong pg_hba.conf được đáp ứng.Password - Một vai trò có thể kết nối bằng cách cung cấp mật khẩu. Mật khẩu có thể được lưu trữ dưới dạng scram-sha-256 , md5 password (văn bản rõ ràng).Ident - Chỉ được hỗ trợ trên các kết nối TCP / IP. Nó hoạt động bằng cách lấy tên người dùng hệ điều hành của khách hàng, với ánh xạ tên người dùng tùy chọn.Peer - Giống như Nhận dạng, nhưng nó chỉ được hỗ trợ trên các kết nối cục bộ.

Xác thực ứng dụng khách PostgreSQL được xác định trong tệp cấu hình có tên pg_hba.conf . Theo mặc định, đối với các kết nối cục bộ, PostgreSQL được đặt để sử dụng phương thức xác thực ngang hàng.

Người dùng postgres được tạo tự động khi bạn cài đặt máy chủ PostgreSQL. Người dùng này là siêu người dùng cho phiên bản PostgreSQL. Nó tương đương với người dùng root MySQL.

Để đăng nhập vào máy chủ PostgreSQL với tư cách là người dùng postgres , trước tiên hãy chuyển sang người dùng và sau đó truy cập vào dấu nhắc psql tiện ích psql :

sudo su - postgres psql

Từ đây, bạn có thể tương tác với phiên bản PostgreSQL. Để thoát khỏi trình bao PostgreSQL, gõ:

\q

Bạn cũng có thể truy cập lời nhắc PostgreSQL mà không cần chuyển người dùng bằng sudo :

sudo -u postgres psql

Thông thường người dùng postgres chỉ được sử dụng từ localhost.

Tạo vai trò và cơ sở dữ liệu PostgreSQL

Chỉ những siêu nhân và vai trò có đặc quyền CREATEROLE mới có thể tạo ra vai trò mới.

Trong ví dụ sau, chúng tôi sẽ tạo một vai trò mới có tên john , cơ sở dữ liệu có tên johndb và cấp các đặc quyền trên cơ sở dữ liệu.

  1. Đầu tiên, kết nối với trình bao PostgreSQL:

    sudo -u postgres psql

    Tạo một vai trò PostgreSQL mới bằng cách sử dụng lệnh thr sau:

    create role john;

    Tạo một cơ sở dữ liệu mới:

    create database johndb;

    Cấp đặc quyền cho người dùng trên cơ sở dữ liệu bằng cách chạy truy vấn sau:

    grant all privileges on database johndb to john;

Cho phép truy cập từ xa vào máy chủ PostgreSQL

Theo mặc định, máy chủ PostgreSQL chỉ lắng nghe trên giao diện cục bộ 127.0.0.1 .

Để cho phép truy cập từ xa vào máy chủ PostgreSQL của bạn, hãy mở tệp cấu hình:

sudo nano /var/lib/pgsql/data/postgresql.conf

Cuộn xuống phần CONNECTIONS AND AUTHENTICATION và thêm / chỉnh sửa dòng sau:

/var/lib/pgsql/data/postgresql.conf

#------------------------------------------------------------------------------ # CONNECTIONS AND AUTHENTICATION #------------------------------------------------------------------------------ # - Connection Settings - listen_addresses = '*' # what IP address(es) to listen on;

Lưu tệp và khởi động lại dịch vụ PostgreSQL với:

sudo systemctl restart postgresql

Xác minh các thay đổi với tiện ích ss :

ss -nlt | grep 5432

LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* LISTEN 0 128:5432:*

Đầu ra ở trên cho thấy rằng máy chủ PostgreSQL đang lắng nghe trên cổng mặc định trên tất cả các giao diện (0.0.0.0).

Bước cuối cùng là cấu hình máy chủ để chấp nhận các kết nối từ xa bằng cách chỉnh sửa tệp pg_hba.conf .

Dưới đây là một số ví dụ cho thấy các trường hợp sử dụng khác nhau:

/var/lib/pgsql/data/pg_hba.conf

# TYPE DATABASE USER ADDRESS METHOD # The user jane can access all databases from all locations using an md5 password host all jane 0.0.0.0/0 md5 # The user jane can access only the janedb database from all locations using an md5 password host janedb jane 0.0.0.0/0 md5 # The user jane can access all databases from a trusted location (192.168.1.134) without a password host all jane 192.168.1.134 trust

Phần kết luận

CentOS 8 cung cấp hai phiên bản PostgreSQL: 9.6 và 10.0.

Để biết thêm thông tin về chủ đề này, hãy truy cập Tài liệu PostgreSQL

cơ sở dữ liệu postgresql