Android

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

Install Postgres on Centos 7

Install Postgres on Centos 7

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 tạo các ứng dụng web phức tạp.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn hai phương pháp khác nhau về cách cài đặt PostgreSQL trên máy CentOS 7 của bạn. Phương pháp đầu tiên sẽ hướng dẫn bạn các bước cần thiết để cài đặt PostgreSQL v9.2.23 từ kho lưu trữ CentOS trong khi phương pháp thứ hai sẽ chỉ cho bạn cách cài đặt phiên bản PostgreQuery mới nhất từ ​​kho lưu trữ PostgreQuery chính thức.

Nếu ứng dụng của bạn không yêu cầu phiên bản mới nhất, chúng tôi khuyên bạn nên sử dụng phương pháp đầu tiên và cài đặt PostgreSQL từ kho lưu trữ của CentOS.

Chúng tôi cũng sẽ khám phá các nguyên tắc cơ bản của quản trị cơ sở dữ liệu PostgreSQL.

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

Trước khi tiếp tục với hướng dẫn này, hãy đảm bảo bạn đã đăng nhập với tư cách là người dùng có quyền sudo.

Cài đặt PostgreSQL từ kho CentOS

Tại thời điểm viết bài viết này, phiên bản mới nhất của PostgreSQL có sẵn từ kho lưu trữ của CentOS là PostgreQuery phiên bản 9.2.23.

Để cài đặt PostgreSQL trên máy chủ CentOS của bạn, hãy làm theo các bước dưới đây:

  1. Cài đặt PostgreSQL

    Để cài đặt máy chủ PostgreSQL cùng với gói đóng góp PostgreSQL cung cấp một số tính năng bổ sung cho cơ sở dữ liệu PostgreQuery, chỉ cần gõ:

    sudo yum install postgresql-server postgresql-contrib

    Đang khởi tạo cơ sở dữ liệu

    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 PostgreSQL

    Để bắt đầu dịch vụ PostgreSQL và cho phép nó khởi động khi khởi động, chỉ cần gõ:

    sudo systemctl start postgresql sudo systemctl enable postgresql

    Xác minh cài đặt PostgreSQL

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

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

    PostgreSQL 9.2.23 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16), 64-bit (1 row)

Psql là một tiện ích dòng lệnh tương tác cho phép chúng ta tương tác với máy chủ PostgreQuery.

Cài đặt PostgreSQL từ kho PostgreSQL

Tại thời điểm viết bài viết này, phiên bản mới nhất của PostgreSQL có sẵn từ kho chính thức của PostgreQuery là PostgreQuery phiên bản 10.4. Trước khi tiếp tục bước tiếp theo, bạn nên truy cập trang Kho lưu trữ Yum của PostgreSQL và kiểm tra xem có phiên bản mới nào không.

Thực hiện theo các bước bên dưới để cài đặt phiên bản PostgreSQL mới nhất trên máy chủ CentOS của bạn:

  1. Kích hoạt kho lưu trữ PostgreSQL

    Để kích hoạt kho lưu trữ PostgreSQL, chỉ cần cài đặt tệp rpm kho lưu trữ:

    sudo yum install

    Cài đặt PostgreSQL

    Khi kho lưu trữ được kích hoạt, hãy cài đặt máy chủ PostgreSQL và các gói đóng góp PostgreSQL với:

    sudo yum install postgresql10-server postgresql10-contrib

    Đang khởi tạo cơ sở dữ liệu

    Để khởi tạo loại cơ sở dữ liệu PostgreSQL:

    sudo /usr/pgsql-10/bin/postgresql-10-setup initdb

    Initializing database… OK

    Bắt đầu PostgreSQL

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

    sudo systemctl start postgresql-10 sudo systemctl enable postgresql-10

    Xác minh cài đặt PostgreSQL

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

    sudo -u postgres /usr/pgsql-10/bin/psql -c "SELECT version();"

    PostgreSQL 10.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit (1 row)

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

Quyền truy cập cơ sở dữ liệu trong PostgreSQL được xử lý với 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 - Với phương thức này, vai trò có thể kết nối mà không cần mật khẩu, miễn là các tiêu chí đượ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 - Phương pháp này 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 - Tương tự 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 PostgreSQL. Người dùng này là siêu người dùng cho phiên bản PostgreSQL và 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 bạn cần chuyển sang postgres của 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 ví dụ PostgreSQL của bạn. Để 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 đổi người dùng bằng sudo :

sudo -u postgres psql

Người dùng postgres thường chỉ được sử dụng từ máy chủ cục bộ và không nên đặt mật khẩu cho người dùng này.

Nếu bạn đã cài đặt PostgreSQL phiên bản 10 từ kho lưu trữ chính thức của PostgreSQL, bạn sẽ cần sử dụng đường dẫn đầy đủ đến tệp nhị phân psql /usr/pgsql-10/bin/psql .

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 là john một 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. Kết nối với Shell PostgreSQL

    sudo -u postgres psql

    Tạo một vai trò PostgreSQL mới

    Lệnh sau sẽ tạo một vai trò mới có tên john:

    create role john;

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

    Tạo một cơ sở dữ liệu mới có tên johndb bằng lệnh createdb:

    create database johndb;

    Cấp đặc quyền

    Để cấp quyền cho người dùng john trên cơ sở dữ liệu chúng tôi đã tạo ở bước trước, hãy 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ủ listen_addresses = '*' của bạn, hãy mở tệp cấu hình postgresql.conf và thêm listen_addresses = '*' trong phần CONNECTIONS AND AUTHENTICATION .

sudo vim /var/lib/pgsql/data/postgresql.conf Nếu bạn đang chạy PostgreSQL phiên bản 10, đường dẫn đến tệp là /var/lib/pgsql/10/data/postgresql.conf ./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ụ PostgreQuery bằng:

sudo systemctl restart postgresql Nếu bạn đang chạy PostgreSQL phiên bản 10, hãy khởi động lại dịch vụ PostgreSQL với systemctl restart postgresql-10 .

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:*

Như bạn có thể thấy từ đầu ra phía trên, máy chủ PostgreSQL đang lắng nghe 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 will be able to access all databases from all locations using a md5 password host all jane 0.0.0.0/0 md5 # The user jane will be able to access only the janedb from all locations using a md5 password host janedb jane 0.0.0.0/0 md5 # The user jane will be able to access all databases from a trusted location (192.168.1.134) without a password host all jane 192.168.1.134 trust Nếu bạn đang chạy PostgreSQL phiên bản 10, đường dẫn đầy đủ đến tệp là /var/lib/pgsql/10/data/pg_hba.conf .

Phần kết luận

Bạn đã tìm hiểu cách cài đặt và định cấu hình PostgreSQL trên máy chủ CentOS 7 của mình.

Bạn có thể tham khảo Tài liệu PostgreSQL để biết thêm thông tin về chủ đề này.

cơ sở dữ liệu postgresql