Hướng dẫn cài đặt PostgreSQL trên CentOS 7
I. Giới thiệu
PostgreSQL là gì?
PostgreSQL là một hệ thống quản trị cơ sở dữ liệu quan hệ đối tượng (object-relational database management system) có mục đích chung, hệ thống cơ sở dữ liệu mã nguồn mở tiên tiến nhất hiện nay.
Nó được thiết kế để chạy trên các nền tảng tương tự UNIX nhưng sau đó được điều chỉnh linh động để có thể chạy được trên nhiều nền tảng khác nhau.
Đây là một phần mềm mã nguồn mở miễn phí. Mã nguồn của phần mềm khả dụng theo license nên theo đó thì bạn sẽ được tự do sử dụng, sửa đổi và phân phối dưới mọi hình thức.
PostgreSQL không yêu cầu quá nhiều công tác bảo trì bởi có tính ổn định cao. Do đó, nếu bạn phát triển các ứng dụng dựa trên PostgreSQL, chi phí sở hữu sẽ thấp hơn so với các hệ thống quản trị dữ liệu khác.
Vì sao sử dụng?
PostgreSQL sở hữu một hệ tính năng đa dạng giúp hỗ trợ các nhà phát triển xây dựng app, các nhà quản trị bảo vệ toàn vẹn dữ liệu.
Tạo ra một môi trường chịu lỗi fault-tolerant giúp quản lý dữ liệu bất kể tập dữ liệu lớn hay nhỏ.Bên cạnh hệ thống nguồn mở và miễn phí, nó cũng có khả năng mở rộng tuyệt vời.
Dù tuân theo tiêu chuẩn SQL nhưng không mâu thuẫn với các tính năng truyền thống.Nhiều tính năng theo tiêu chuẩn SQL được hỗ trợ, tuy nhiên đôi khi có thể có cú pháp hoặc hàm hơi khác một chút.
Một số tính năng đa dạng của PostgreSQL:
1. Kiểu dữ liệu:
- Nguyên hàm: Số nguyên, số, chuỗi, Boolean.
- Cấu trúc: Date/Time, Array, Phạm vi, UUID.
- Tài liệu: JSON / JSONB, XML, Key-value (Hstore).
- Hình học: Điểm, Đường thẳng, Vòng tròn, Đa giác.
- Tùy chỉnh: Composite, Các kiểu tùy chỉnh.
2. Toàn vẹn dữ liệu:
- DUY NHẤT, KHÔNG ĐỦ.
- Các phím chính.
- Phím nước ngoài.
- Ràng buộc loại trừ.
- Khóa hàm số/ Explicit Locks, Khóa khuyến nghị/ Advisory Locks.
3. Đồng quy, hiệu suất:
- Lập danh mục: B-tree, Multicolumn, Expressions, Partial.
- Lập danh mục nâng cao: GiST, SP-Gist, KNN Gist, GIN, BRIN, Bloom filters.
- Trình lập kế hoạch / trình tối ưu hóa truy vấn phức tạp, quét index-only, thống kê số liệu trên nhiều cột.
- Giao tác, Giao tác dạng nest (thông qua lưu điểm).
- Điều khiển đồng thời nhiều phiên bản (MVCC).
- Truy vấn đọc song song.
- Phân vùng bảng.
- Tất cả các mức độ giao dịch độc lập được xác định trong tiêu chuẩn SQL, bao gồm cả Serializable.
- Độ tin cậy, phục hồi sau thảm hoạ.
- Ghi nhật ký ghi trước (Write-ahead Logging – WAL).
- Replication: Không đồng bộ, Đồng bộ, Logical
- Khôi phục điểm-theo-thời gian (Point-in-time-recovery – PITR), active standbys.
- Không gian bảng.
- Bảo mật: Xác thực: GSSAPI, SSPI, LDAP, SCRAM-SHA-256, Certificate và các hình thức khác , Hệ thống kiểm soát truy cập mạnh mẽ, Bảo mật cấp độ cột và hàng.
- Ngôn ngữ thủ tục: PL / PGSQL, Perl, Python (và nhiều ngôn ngữ khác).
- Trình wrapper dữ liệu ngoài: kết nối với các cơ sở dữ liệu hoặc luồng khác với giao diện SQL chuẩn.
- Tìm kiếm văn bản: Hỗ trợ các bộ ký tự quốc tế, ví dụ: thông qua ICU collations , Tìm kiếm văn bản đầy đủ.
II. Hướng dẫn cài đặt
Bước 1: SSH vào VPS của bạn
Để cài đặt PostgreSQL , đầu tiên chúng ta cần SSH hoặc truy cập VPS hoặc máy chủ của bạn với quyền root . Nếu bạn chưa biết cách SSH thì có thể tham khảo bài viết hướng dẫn sau:
Bước 2: Cài đặt PostgreSQL
Tại thời điểm mình viết bài này, phiên bản mới nhất của PostgreSQL đang là phiên bản 13. Trước khi đi vào cài đặt các bạn có thể kiểm tra lại xem PostgreSQL Yum Repository đã có phiên bản mới nào khác chưa và có thể cài đặt theo bản mới nhé.
- Kích hoạt kho lưu trữ PostgreSQL
yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
- Cài đặt PostgreSQL
Khi kích hoạt xong kho lưu trữ, bạn chạy lệnh sau để cài đặt PostgreSQL:
yum -y cài đặt postgresql13 postgresql13-server
- 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-13/bin/postgresql-13-setup initdb
- Khởi động PostgreSQL
systemctl enable postgresql-13 (Khởi động PostgreSQL cùng hệ thống) systemctl start postgresql-13 (Khởi động PostgreSQL ) systemctl status postgresql-13 (Trạng thái PostgreSQL )
Bước 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
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.
Bước 4: Tạo Role và cơ sở dữ liệu
Chỉ có superuser và user có đặc quyền CREATEROLE mới có thể tạo ra Roles mới.
Trong ví dụ sau, ta sẽ tạo một Roles mới có tên là kythuat và một cơ sở dữ liệu có tên kythuat_data sau đó 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 kythuat:
create role kythuat;
- Tạo cơ sở dữ liệu PostgreSQL mới
Tạo một cơ sở dữ liệu mới có tên kythuat_data bằng lệnh createdb:
create database kythuat_data;
- Cấp quyền
Để cấp quyền cho người dùng kythuat trên cơ sở dữ liệu kythuat_data đã tạo ở bước trước, hãy chạy truy vấn sau:
grant all privileges on database kythuat_data to kythuat;
III. Tổng kết
Như vậy ở bài viết này Tenten đã hướng dẫn bạn cách cài đặt nhanh PostgreSQL trên CenOS 7, để bạn có thể trải nghiệm một bộ mã nguồn mở quản trị cơ sở dữ liệu được cho là mạnh mẽ nhất hiện nay.
Ngoài ra Các bạn có thể xem qua một số bài viết khác về kiến thức Linux tại link bên dưới
- Hướng dẫn chung về Linux
Nếu cần hỗ trợ các bạn có thể liên hệ bộ phận hỗ trợ theo các cách bên dưới:
- Hotline 247: (024) 73 020 555
- Ticket/Email: Bạn dùng email đăng ký dịch vụ gửi trực tiếp về: kythuat@tenten.vn