Cài đặt PostgreSQL trên CentOS 7 – PostgreSQL hoặc Postgres là một hệ thống quản lý cơ sở dữ liệu quan hệ đối tượng mã 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 bài viết này HOSTVN sẽ hướng dẫn các bạn cách cài đặt PostgreSQL trên CentOS 7.
Mục lục
Hướng dẫn cài đặt PostgreSQL trên CentOS 7
1. Điều kiện tiên quyết
Để làm theo hướng dẫn này các bạn cần một VPS sử dụng hệ điều hành CentOS 7. Nếu chưa có VPS các bạn có thể tham khảo các gói VPS SSD tại HOSTVN
2. Cài đặt PostgreSQL trên CentOS 7
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à phiên bản 12. Trước khi tiếp tục, bạn nên truy cập Kho lưu trữ Yum của PostgreSQL và kiểm tra xem có phiên bản mới nào không.
2.1. Bước 1: Kích hoạt kho lưu trữ PostgreSQL
Để kích hoạt kho lưu trữ PostgreSQL, các bạn chỉ cần chạy lệnh sau:
yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
2.2. Bước 2: Cài đặt PostgreSQL
Khi kho lưu trữ được kích hoạt, hãy chạy lệnh sau để cài đặt PostgreSQL:
yum -y install postgresql12 postgresql12-server
2.3. Bước 3: Khởi tạo cơ sở dữ liệu
Để khởi tạo loại cơ sở dữ liệu PostgreSQL hãy chạy lệnh sau:
/usr/pgsql-12/bin/postgresql-12-setup initdb
2.4. Bước 4: Khởi động PostgreSQL
Để khởi động PostgreSQL và cho phép nó tự khởi động mỗi khi khởi động lại hệ thống hãy chạy lần lượt các lệnh sau đây:
systemctl enable postgresql-12 systemctl start postgresql-12
2.5. Bước 5: Kiểm tra
Để kiểm tra xem PostgreSQL đã hoạt động hay chưa các bạn sử dụng lệnh sau:
service postgresql-12 status
3. Roles 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 Roles. Một Roles có thể đại diện cho người dùng hoặc một nhóm người dùng.
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à:
- Trust – Với phương thức này, Role 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 Role 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 hoặc dạng text không mã hoá.
- 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 khách hàng, với ánh xạ tên người dùng tùy chọn.
- Peer – Tương tự như Ident nhưng nó chỉ hỗ trợ trên các kết nối nội bộ (Local).
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 nội bộ (Local), PostgreSQL sẽ sử dụng phương thức xác thực Peer.
User postgres được tạo tự động khi bạn cài đặt PostgreSQL. Người dùng này là superuser của PostgreSQL và nó tương đương với người dùng root trong MySQL.
Để đăng nhập vào máy chủ PostgreSQL với tư cách là User postgres, trước tiên bạn cần chuyển sang user postgres và sau đó truy cập vào dấu nhắc PostgreQuery bằng 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 PostgreSQL, gõ lệnh:
q
Bạn cũng có thể truy cập PostgreSQL mà không cần chuyển đổi người dùng bằng lệnh sudo:
sudo -u postgres psql
Người dùng postgres thường chỉ được sử dụng với kết nối nội bộ (Local) và không nên đặt mật khẩu cho người dùng này.
4. Tạo Role và cơ sở dữ liệu PostgreSQL
Chỉ có superuser và user có đặc quyền CREATEROLE mới có thể tạo ra Roles mới.
Trong ví dụ sau, chúng tôi sẽ tạo một Roles mới có tên là hostvn một cơ sở dữ liệu có tên hostvndb và cấp các đặc quyền trên cơ sở dữ liệu.
- Kết nối với Shell PostgreSQL
sudo -u postgres psql
- Tạo một Roles PostgreSQL mới
Lệnh sau sẽ tạo một Roles mới có tên hostvn:
create role hostvn;
- Tạo cơ sở dữ liệu PostgreSQL mới
Tạo một cơ sở dữ liệu mới có tên hostvndb bằng lệnh createdb:
create database hostvndb;
- Cấp đặc quyền
Để cấp quyền cho người dùng hostvn trên cơ sở dữ liệu hostvndb đã tạo ở bước trước, hãy chạy truy vấn sau:
grant all privileges on database hostvndb to hostvn;
5. Kết luận
Qua bài viết này HOSTVN đã hướng dẫn các bạn cài đặt PostgreSQL trên CentOS 7 cũng như tìm hiểu cách tạo Role, database và cấp đặc quyền cho Role. nếu có bất kỳ ý kiến đóng góp nào các bạn có thể để lại bình luận ở bên dưới. Ngoài ra các bạn có thể xem thêm hướng dẫn cài đặt MongoDB trên CentOS 7.