NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
10/04/2023
Lượt xem

Hướng dẫn cài đặt và sử dụng PostgreSQL trên Ubuntu 20.04

10/04/2023
20 phút đọc
Lượt xem

Đánh giá

5/5 - (104 bình chọn)

PostgreSQL (hay Postgres) là hệ quản trị cơ sở dữ liệu mạnh mẽ, hỗ trợ xử lý dữ liệu lớn với độ tin cậy cao và hiệu suất tối ưu. Nhờ khả năng quản lý transaction phức tạp và quản lý đồng thời hiệu quả mà không cần khóa việc đọc dữ liệu, PostgreSQL được nhiều ứng dụng lựa chọn. Trong bài viết này, mình sẽ hướng dẫn bạn cách cài đặt và sử dụng PostgreSQL trên Ubuntu 20.04, cùng một số thao tác quản trị quan trọng để tối ưu hiệu suất hệ thống.

Những điểm chính

  • Điều kiện cài đặt và sử dụng PostgreSQL trên Ubuntu 20.04: Cần máy chủ Ubuntu 20.04, cấu hình firewall và tài khoản có quyền sudo – giúp bạn chuẩn bị đúng môi trường để cài đặt thành công.
  • Cài đặt PostgreSQL: Hướng dẫn cài đặt thông qua apt và khởi động dịch vụ – giúp bạn thiết lập nhanh chóng PostgreSQL trên hệ thống.
  • Phân quyền và xác thực PostgreSQL: Cách hoạt động của phân quyền, vai trò và xác thực ngang hàng – giúp bạn hiểu và thiết lập an ninh cho cơ sở dữ liệu.
  • Quản lý người dùng và vai trò: Cách tạo và quản lý role mới – giúp bạn phân quyền hiệu quả cho từng đối tượng sử dụng.
  • Tạo và quản lý cơ sở dữ liệu: Quy trình tạo mới và truy cập cơ sở dữ liệu – giúp bạn khởi tạo không gian lưu trữ dữ liệu.
  • Thao tác với bảng: Cách tạo, xóa và quản lý cấu trúc bảng – giúp bạn thiết kế cơ sở dữ liệu theo nhu cầu.
  • Quản lý dữ liệu: Hướng dẫn thêm, truy vấn, cập nhật và xóa dữ liệu – giúp bạn vận hành và duy trì dữ liệu hiệu quả.
  • Tối ưu hóa hiệu suất: Gợi ý về việc đổi vị trí lưu trữ dữ liệu – giúp bạn cải thiện hiệu suất hệ thống cơ sở dữ liệu.
  • Giới thiệu Vietnix: Thông tin về dịch vụ VPS của Vietnix – giúp bạn lựa chọn nền tảng phù hợp để triển khai PostgreSQL một cách ổn định và hiệu quả.

Điều kiện để cài đặt và sử dụng PostgreSQL trên Ubuntu 20.04

Để cài đặt và sử dụng PostgreSQL trên Ubuntu 20.04, bạn cần có một máy chủ Ubuntu 20.04 đã cấu hình firewall và tài khoản máy chủ có quyền sudo nhưng không phải là tài khoản root.

Để có một máy chủ linh hoạt, hỗ trợ đa dạng hệ điều hành, toàn quyền quản trị và cài đặt PostgreSQL, bạn có thể tham khảo lựa chọn dịch vụ thuê VPS tại Vietnix.

Vietnix là một trong những nhà cung cấp dịch vụ VPS tốc độ cao uy tín hàng đầu tại Việt Nam. Tại đây, bạn có thể lựa chọn gói dịch vụ VPS AMD, VPS GPU, VPS NVMe, VPS SSD, VPS Giá Rẻ, với cấu hình phù hợp với nhu cầu. Đồng thời, bạn cũng có thể cài đặt các hệ điều hành phổ biến như Ubuntu, CentOS, Debian, Windows Server,… Sở hữu VPS từ Vietnix, bạn tự do quản trị và cài đặt các phần mềm, ứng dụng trên máy chủ của mình, bao gồm cả PostgreSQL.

Bước 1: Cài đặt PostgreSQL

Các kho lưu trữ mặc định của Ubuntu chứa các package Postgres, vì vậy bạn có thể cài đặt các package này bằng hệ thống package apt.

Đầu tiên, thực hiện cập nhật hệ thống bằng câu lệnh:

sudo apt update

Sau đó, cài đặt package Postgres cùng với một package -contrib có các tiện ích và chức năng bổ sung:

sudo apt install postgresql postgresql-contrib

Đảm bảo rằng dịch vụ đang chạy bằng lệnh systemctl start :

sudo systemctl start postgresql.service

Bây giờ PostgreSQL đã được cài đặt và khởi chạy thành công, hãy xem xét cách thức hoạt động và sự khác nhau giữa PostgreSQL với các hệ thống quản lý cơ sở dữ liệu quan hệ khác mà có thể bạn đã từng sử dụng.

Bước 2: Sử dụng phân quyền trong PostgreSQL và cơ sở dữ liệu

Mặc định, Postgres sử dụng một khái niệm gọi là “roles” để xử lý xác thực và ủy quyền. Trong một vài ngữ cảnh, khái niệm này được ví tương tự như hệ thống phân quyền tài khoản trong Unix, nhưng Postgres không phân biệt giữa người dùng và nhóm người dùng, thay vào đó sử dụng “role” để thể hiện một cách linh hoạt hơn.

Khi cài đặt, Postgres được thiết lập sử dụng phương thức xác thực ngang hàng (peer authentication), có nghĩa là có liên kết các vai trò của Postgres với tài khoản hệ thống UNIX/Linux phù hợp. Nếu một vai trò tồn tại trong Postgres, tên người dùng Unix/Linux có cùng tên có thể đăng nhập với vai trò đó.

Trong quá trình cài đặt đã tạo một tài khoản người dùng có tên Postgres được cấp quyền Postgres mặc định. Bạn có thể đăng nhập vào tài khoản đó để sử dụng Postgres.

Có một vài cách để sử dụng tài khoản này để truy cập Postgres.

Chuyển sang tài khoản Postgres

Chuyển sang tài khoản Postgres trên máy chủ của bạn bằng câu lệnh:

sudo -i -u postgres

Bây giờ bạn có thể truy cập giao diện dòng lệnh PostgreSQL một cách nhanh chóng bằng câu lệnh:

psql

Từ đó, bạn có thể tự do tương tác với hệ thống quản lý cơ sở dữ liệu khi cần thiết.

Thoát khỏi giao diện dòng lệnh PostgreSQL bằng cách gõ:

\q

Thao tác này sẽ đưa bạn trở lại giao diện dòng lệnh postgres Linux.

Truy cập Postgres prompt mà không cần chuyển đổi tài khoản

Bạn có thể chạy lệnh bạn muốn trực tiếp với tài khoản Postgres bằng sudo.

Ví dụ như bạn được hướng dẫn truy cập Postgres prompt bằng cách chuyển sang người dùng postgres và sau đó chạy psql để mở Postgres prompt. Bạn có thể làm điều này trong một bước bằng cách chạy lệnh psql đơn lẻ với tư cách là người dùng Postgres với sudo như sau:

sudo -u postgres psql

Câu lệnh này giúp bạn đăng nhập trực tiếp vào Postgres mà không cần bash shell trung gian ở giữa.

Tương tự, bạn có thể thoát khỏi phiên làm việc Postgres bằng cách gõ:

\q

Trong các trường hợp thực tế, một tài khoản có thể được phần quyền nhiều vai trò cụ thể. Để biết được làm thế nào để cấu hình như vậy hay theo dõi các bước cấu hình bên dưới.

Bước 3: Tạo một Role mới

Thực tế, bạn chỉ có vai trò postgres được cấu hình trong cơ sở dữ liệu. Bạn có thể tạo role mới từ dòng lệnh bằng lệnh createrole. Cờ --interactive sẽ nhắc bạn nhập tên của role mới và cũng hỏi xem vai trò đó có quyền siêu người dùng hay không.

Nếu bạn đã đăng nhập bằng tài khoản postgres, bạn có thể tạo người dùng mới bằng cách nhập:

createuser --interactive

Thay vào đó, bạn có thể thêm sudo cho câu lệnh mà không phải chuyển đổi từ tài khoản thường sang tài khoản khác có quyền bằng câu lệnh:

sudo -u postgres createuser --interactive

Tập lệnh sẽ hỏi bạn tên role mới và có cấp quyền siêu người dùng không. Dựa vào đó thực hiện các lệnh Postgres chính xác để tạo người dùng theo yêu cầu.

Output
Enter name of role to add: sammy
Shall the new role be a superuser? (y/n) y

Bạn có thể tạo chi tiết hơn khi thêm một số cờ bổ sung. Kiểm tra danh sách các tùy chọn bằng cách xem hướng dẫn qua câu lệnh:

man createuser

Lúc này, Postgres hiện thêm người dùng mới thành công, nhưng chưa gán quyền thao tác với bất kỳ cơ sở dữ liệu nào. Bước 4 sẽ mô tả quá trình này.

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

Một giả định rằng, khi đăng nhập vào hệ thống với vai trò nào thì sẽ có quyền truy cập cơ sở dữ liệu có cùng tên với vai trò đó.

Điều này có nghĩa là nếu người dùng bạn tạo ở bước 3 được gọi là Sammy, vai trò đó sẽ cố gắng kết nối với cơ sở dữ liệu còn được gọi là “Sammy” theo mặc định. Bạn cũng có thể tạo cơ sở dữ liệu thích hợp với lệnh createdb.

Nếu bạn đã đăng nhập thành công vào Postgres, bạn có thể tạo một cơ sở dữ liệu với lệnh sau:

createdb sammy

Thay vào đó, bạn có thể sử dụng sudo cho lệnh mà không cần chuyển đổi qua lại từ tài khoản thông thường của mình:

sudo -u postgres createdb sammy

Giúp đảm bảo sự linh hoạt để tạo cơ sở dữ liệu khi cần thiết.

Bước 5: Mở Postgres Prompt với Role mới

Để đăng nhập bằng cách xác thực ngang hàng, bạn sẽ cần một người dùng Linux có cùng tên với cơ sở dữ liệu và Role Postgres của bạn.

Nếu bạn không có sẵn Linux user phù hợp, bạn có thể tạo một user mới bằng lệnh adduser. Bạn sẽ phải thực hiện tạo mới user bằng tài khoản có quyền sudo mà không phải root của mình (nghĩa là không đăng nhập với tư cách người dùng postgres):

sudo adduser sammy

Lúc này, tài khoản mới này đã được tạo, bạn có thể chuyển đổi và kết nối với cơ sở dữ liệu bằng cách chạy các câu lệnh sau:

sudo -i -u sammy
psql

Hoặc bạn có thể viết cùng trên một dòng:

sudo -u sammy psql

Giả sử rằng tất cả các thành phần đã được cấu hình đúng thì lệnh này sẽ giúp bạn tự động đăng nhập vào Postgres Prompt

Nếu bạn muốn tài khoản của mình kết nối với cơ sở dữ liệu khác, bạn có thể làm bằng cách chỉ định cơ sở dữ liệu mong muốn như sau:

psql -d postgres

Khi đó đã đăng nhập thành công, bạn có thể kiểm tra thông tin kết nối hiện tại bằng cách nhập:

\conninfo

Bạn có thể nhận được kết quả như sau:

You are connected to database "sammy" as user "sammy" via socket in "/var/run/postgresql" at port "5432".

Điều này hữu ích kho bạn đang kết nối với cơ sở dữ liệu không mặc định hoặc với người dùng không mặc định.

Bước 6: Tạo và xóa bảng

Sau khi bạn đã biết cách kết nối với hệ thống cơ sở dữ liệu PostgreSQL, bạn có thể tìm hiểu một số tác vụ quản lý Postgres cơ bản.

Cú pháp cơ bản để tạo bảng như sau:

CREATE TABLE table_name (
    column_name1 col_type (field_length) column_constraints,
    column_name2 col_type (field_length),
    column_name3 col_type (field_length)
);

Như bạn có thể thấy, các lệnh trên thực hiện nhiệm vụ đặt tên cho bảng, sau đó xác định các tên cột, loại dữ liệu và độ dài tối đa của dữ liệu. Bạn cũng có thể tùy chọn thêm các ràng buộc bảng (table constraints) cho mỗi cột.

Ví dụ, bạn có thể tạo một bảng với các giá trị như sau:

CREATE TABLE playground (
    equip_id serial PRIMARY KEY,
    type varchar (50) NOT NULL,
    color varchar (25) NOT NULL,
    location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')),
    install_date date
);

Dòng đầu tiên tạo ra một bảng tên là playground.

Cột equip_id là khóa chính, kiểu dữ liệu serial là một số nguyên tự động tăng. Cột này cũng có ràng buộc của khóa chính PRIMARY KEY có nghĩa là các giá trị của cột phải là duy nhất và không được null.

Hai dòng tiếp theo tạo ra các cột type color, cả hai đều không được null và không được bỏ trống. Dòng tiếp theo tạo một cột location với ràng buộc chỉ có thể là một trong tám giá trị đó. Dòng cuối cùng tạo ra một cột ngày ghi lại thời gian mà bạn đã cài đặt thiết bị đó.

Đối với hai cột equip_id install_date không chỉ định độ lớn dữ liệu vì kiểu dữ liệu đó thuộc loại dữ liệu không yêu xác định cầu độ lớn hoặc ngầm định rằng kiểu dữ liệu đã bao hàm độ lớn.

Để xem bảng mới được tạo bằng câu lệnh:

\d
Output
                  List of relations
 Schema |          Name           |   Type   | Owner 
--------+-------------------------+----------+-------
 public | playground              | table    | sammy
 public | playground_equip_id_seq | sequence | sammy
(2 rows)

Bảng playground được liệt kê, bên cạnh đó có một dòng khác là playground_equip_id_seq thuộc loại trình tự (sequence). Đây là phần trình bày của loại serial mà bạn đã cung cấp cho cột equip_id của mình. Điều này theo dõi số tiếp theo trong chuỗi và được tạo tự động cho các cột thuộc loại này.

Nếu bạn chỉ muốn xem danh sách bảng, bạn có thể xem bằng lệnh:

\dt
Output
          List of relations
 Schema |    Name    | Type  | Owner 
--------+------------+-------+-------
 public | playground | table | sammy
(1 row)

Phần tiếp theo, sử dụng bảng vừa được tạo để thực hành quản lý dữ liệu.

Bước 7: Thêm, truy vấn và xóa dữ liệu trong bảng

Bây giờ bạn có thể chèn một vài dữ liệu vào bảng.

Ví dụ: Thêm slide và swing bằng cách gọi bảng bạn muốn thêm vào dữ liệu, đặt tên cho các cột và sau đó cung cấp dữ liệu cho từng cột như sau:

INSERT INTO playground (type, color, location, install_date) VALUES ('slide', 'blue', 'south', '2017-04-28');
INSERT INTO playground (type, color, location, install_date) VALUES ('swing', 'yellow', 'northwest', '2018-08-16');

Bạn sẽ phải lưu ý một vài điều khi nhập dữ liệu để tránh các lỗi thông thường.

Đầu tiên, không để tên các cột trong dấu ngoặc đơn, nhưng ngược lại các giá trị cột mà bạn nhập cần đặt trong dấu ngoặc đơn.

Một điều khác cần lưu ý là bạn không nhập cần giá trị cho cột equip_id do giá trị cột này được tạo tự động bất cứ khi nào bạn thêm một hàng mới vào bảng.

Lấy thông tin bạn đã thêm bằng cách nhập:

SELECT * FROM playground;
Output equip_id | type  | color  | location  | install_date 
----------+-------+--------+-----------+--------------
        1 | slide | blue   | south     | 2017-04-28
        2 | swing | yellow | northwest | 2018-08-16
(2 rows)

Bạn có thể thấy rằng dữ liệu của bạn đã được thêm thành công và tất cả các dữ liệu khác của bạn đã được tổ chức một cách chính xác.

Nếu slide không còn tồn tại nữa và bạn muốn xóa khỏi cơ sở dữ liệu của mình bằng cách gõ câu lệnh sau:

DELETE FROM playground WHERE type = 'slide';

Bây giờ, xem lại các dữ liệu trong bảng:

SELECT * FROM playground;
Output
 equip_id | type  | color  | location  | install_date 
----------+-------+--------+-----------+--------------
        2 | swing | yellow | northwest | 2018-08-16
(1 row)

Có thể thấy rằng slide đã được xóa khỏi bảng thành công.

Bước 8: Thêm và xóa cột khỏi bảng

Sau khi tạo một bảng, bạn có thể sửa đổi bằng cách thêm hoặc bớt các cột.

Thực hiện thêm một cột last_maint để hiển thị lần bảo trì cuối cùng cho từng thiết bị bằng cách nhập:

ALTER TABLE playground ADD last_maint date;

Xem lại thông tin bảng của bạn, bạn sẽ thấy cột mới đã được thêm vào nhưng không có dữ liệu nào được nhập vào:

SELECT * FROM playground;
Output
 equip_id | type  | color  | location  | install_date | last_maint 
----------+-------+--------+-----------+--------------+------------
        2 | swing | yellow | northwest | 2018-08-16   | 
(1 row)

Nếu bạn thấy rằng đội ngũ công việc của bạn sử dụng một công cụ riêng biệt để theo dõi lịch sử bảo trì, bạn có thể xóa cột bằng cách gõ:

ALTER TABLE playground DROP last_maint;

Câu lệnh này sẽ xóa cột last_maint và bất kỳ giá trị nào được tìm thấy trong cột đó và sẽ không ảnh hưởng tới các cột dữ liệu khác.

Bước 9: Cập nhật dữ liệu trong bảng

Đến đây, bạn đã biết được cách thêm dữ liệu vào bảng và cách xóa chúng nhưng chưa bao gồm cách sửa đổi các dữ liệu hiện có.

Bạn có thể cập nhật các giá trị của một bản ghi dữ liệu hiện có bằng cách truy vấn cho bản ghi bạn muốn và đặt giá trị cột thành giá trị mới mà bạn mong muốn.

Bạn có thể truy vấn cho bản ghi có loại là swing (điều này sẽ khớp với mọi type swing có trong bảng) và thay đổi thành màu đỏ bằng câu lệnh.

UPDATE playground SET color = 'red' WHERE type = 'swing';

Bạn có thể kiểm tra thao tác đã thành công hay chưa bằng cách truy vấn lại dữ liệu:

SELECT * FROM playground;
Output
 equip_id | type  | color | location  | install_date 
----------+-------+-------+-----------+--------------
        2 | swing | red   | northwest | 2018-08-16
(1 row)

Như bạn có thể thấy thiết bị có loại là swing đã được thay đổi màu sắc thành màu đỏ.

Ngoài ra, đổi vị trí thư mục lưu trữ dữ liệu của PostgreSQL trên Ubuntu 20.04 cũng là một bước quan trọng để tối ưu hóa hiệu suất của cơ sở dữ liệu, vì việc tối ưu hóa vị trí lưu trữ dữ liệu của PostgreSQL có thể giúp nâng cao hiệu suất của hệ thống cơ sở dữ liệu của bạn trên Ubuntu 20.04.

Vietnix – Đơn vị cho thuê VPS chất lượng cao cho doanh nghiệp

Vietnix là đơn vị cho thuê dịch vụ VPS uy tín với nhiều năm kinh nghiệm trong lĩnh vực hosting và máy chủ ảo. Vietnix cam kết mang đến cho khách hàng những giải pháp VPS tốc độ cao, ổn định vượt trội, đáp ứng mọi nhu cầu từ cá nhân đến doanh nghiệp. 

Các gói VPS tại Vietnix đều được đánh giá có tốc độ nhanh, độ ổn định và bảo mật cao, được sao lưu dữ liệu định kỳ, đảm bảo an toàn. Ngoài ra, bất cứ khi nào bạn có thắc mắc hay vấn đề cần hỗ trợ, đội ngũ kỹ thuật của Vietnix cũng luôn sẵn sàng hỗ trợ bạn 24/7. Liên hệ ngay với Vietnix để được tư vấn chi tiết.

Thông tin liên hệ:

  • Hotline: 18001093
  • Email: sales@vietnix.com.vn
  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
  • Website:https://vietnix.vn/

Như vậy, bài viết đã hướng dẫn bạn cách cài đặt và sử dụng PostgreSQL trên Ubuntu 20.04. Từ việc cài đặt ban đầu, đến các thao tác quản trị cơ bản, hy vọng những kiến thức này sẽ giúp bạn tự tin triển khai và vận hành PostgreSQL cho các ứng dụng của mình. Việc nắm vững các thao tác này sẽ là nền tảng vững chắc để bạn xây dựng và phát triển các ứng dụng hiệu quả và ổn định. Chúc bạn thành công!

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

Icon tab

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

Vector

PHẦN CỨNG MẠNH MẼ

Vector

HỖ TRỢ 24/7

Vector
ĐĂNG KÝ NGAYGroup icon
khuyến mãi cuối tháng 3
Nhanh tay, số lượng có hạn!
17/03/2025 - 31/03/2025
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG