Skip to content Skip to main navigation Skip to footer

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

Hướng dẫn cài đặt PostgreSQL trên CentOS 7 với vài thao tác đơn giản cùng AZDIGI.

I. Giới thiệu

PostgreSQL đã tự đưa ra tuyên bố rằng họ là “Cơ sở dữ liệu mã nguồn mở tiên tiến nhất thế giới”. Vậy điều gì khiến cho PostgreSQL tự tin đến vây? Thì ở bài viết này ta sẽ tìm hiểu Postgresql là gì và những tính năng nổi bật giúp Postgresql trở nên mạnh mẽ trên toàn thế giới trong bài viết sau.

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.

PostgreSQL được phát triển dựa trên POSTGRES 4.2 tại phòng khoa học máy tính Berkeley, Đại học California. PostgreSQL được thiết kế để chạy trên các nền tảng tương tự UNIX. Tuy nhiên, PostgreSQL sau đó cũng được điều chỉnh linh động để có thể chạy được trên nhiều nền tảng khác nhau như Mac OS X, Solaris và Windows.

PostgreSQL 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 của PostgreSQL, một license mã nguồn mở tự do. Theo đó, bạn sẽ được tự do sử dụng, sửa đổi và phân phối PostgreSQL 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?

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, và tạo ra một môi trường chịu lỗi fault-tolerant giúp bạn 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í, PostgreSQL cũng có khả năng mở rộng tuyệt vời.

PostgreSQL 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 hay có thể dẫn đến các quyết định kiến trúc gây hại. 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
  • Document: 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:

  • UNIQUE, NOT NULL
  • Primary Keys
  • Foreign Keys
  • 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 đủ

Để hiểu rõ hơn về PostgreSQL  các bạn có thể tham khảo thêm thông tin tại trang chủ: Tại đây

II. Hướng dẫn cài đặt

Để cài đặt PostgreSQL trên CentOS 7 các bạn có thể thực hiện theo 4 bước sau.

Bước 1: SSH vàoVPS 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 vào VPS hoặc Server của bạn thì bạn có thể tham khảo bài viết hướng dẫn sau:

Sau khi đã SSH thành công chúng ta tiếp tục với bước 2 để Cài đặt PostgreSQL.

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
AZDIGI Tutorial
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:

AZDIGI Tutorial
yum -y install 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:

AZDIGI Tutorial
/usr/pgsql-13/bin/postgresql-13-setup initdb
    
  • Khởi động PostgreSQL
AZDIGI Tutorial
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:

AZDIGI Tutorial
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:

AZDIGI Tutorial
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 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, 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
AZDIGI Tutorial
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:

AZDIGI Tutorial
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:

AZDIGI Tutorial
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:

AZDIGI Tutorial
grant all privileges on database kythuat_data to kythuat;
    

III. Tổng kết

Như vậy ở bài viết này AZDIGI đã 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.

Nếu thấy bài viết hữu ích, hãy chia sẻ rộng rãi đến mọi người để cùng biết cách cài đặt nhé. 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

Nếu các bạn 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:

Bình chọn lsvr_kba