Trang chủ Development

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

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

Giới thiệu

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 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. Ví dụ, bạn có thể định nghĩa các kiểu dữ liệu riêng của bạn, xây dựng các hàm tùy chỉnh, hay viết mã từ các ngôn ngữ lập trình khác nhau mà không cần biên dịch lại cơ sở dữ liệu!

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.

Chuẩn bị

Ubuntu Server 20.04

Các bước cài đặt :

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

Để cài đặt PostgreSQL, đầu tiên cần refresh index các package trong server :

```

$ sudo apt update

```

Sau đó, cài đặt gói Postgres cùng với gói -contrib để thêm một số chức năng và công cụ đi kèm :

```

$ sudo apt install postgresql postgresql-contrib

```

Bước 2 - Sử dụng các Role và Database của PostgreSQL

Mặc định, Postgres sử dụng một concept gọi là các roles để quản lý việc xác thực và phân quyền. Các role này cũng tương tự như user và group trong Linux.

Sau khi cài đặt, Postgre được thiết lập để sử dụng xác thực danh tính (ident), nghĩa là nó liên kết các role của Postgres với các tài khoản thích hợp của server Linux . Nếu một role tồn tại trong Postgres, Linux user có cùng tên với nó cũng có thể xác thực vào Postgres qua role đó.

Quá trình cài đặt Postgre sẽ tạo ra một tài khoản người dùng là postgres được liên kết với role mặc định của Postgres. Có một số cách để sử dụng tài khoản này để truy cập vào Postgres. Một là chuyển tới user postgres trên server của bạn bằng cách gõ :

```

$ sudo -i -u postgres

```

Sau đó bạn có thể truy cập Postgres shell bằng cách nhập lệnh:

```

$ psql

```

Lệnh này sẽ giúp bạn đăng nhập vào shell của PostgreSQL và từ đây bạn có thể hoàn toàn tương tác với hệ thống quản lý database.

Để thoát khỏi PostgreSQL, thực hiện lệnh:

```

$ postgres=# \q

```

Lệnh này sẽ đưa bạn trở về shell Linux của user postgres. Để thoát khỏi user này, thực hiện lệnh exit :

```

postgres@server:~$ exit

```

Một cách khác để kết nối đến PostgreSQL shell là chạy lệnh psql sử dụng thẳng user postgres bằng lệnh sudo

```

$ sudo -u postgres psql

```

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

Nếu đang đăng nhập với user postgres, có thể tạo user mới bằng lệnh sau :

```

postgres@server:~$ createuser --interactive

```

Hoặc có thể sử dụng lệnh sudo khi đang đứng ở 1 user khác:

```

$ sudo -u postgres createuser --interactive

```

Dù thực hiện bằng cách nào, shell sẽ trả về một số lựa chọn để bạn nhập vào, và dựa trên thông tin đó, Postgres sẽ tạo user phù hợp với yêu cầu của bạn:

```

Enter name of role to add: vccloud

Shall the new role be a superuser? (y/n) y

```

Bước 4 - Tạo database mới

Có một điều trong cơ chế xác thực của Postgres theo mặc định là với bất cứ role nào được sử dụng để đăng nhập, role đó sẽ có thể truy cập được vào database có cùng tên với nó.

Điều này đồng nghĩa nếu bạn tạo một role tên là vccloud như trên, role này sẽ mặc định có quyền kết nối đến database vccloud. Có thể tạo database bằng lệnh createdb :

```

postgres@server:~$ createdb vccloud

```

Hoặc có thể sử dụng lệnh sudo khi đang đứng ở 1 user khác:

```

$ sudo -u postgres createdb vccloud

```

Bước 5 - Đăng nhập Postgres Shell qua role mới:

Để đăng nhập, bạn cần 1 user linux có cùng tên đăng nhập với role và database trong Posgres.

Nếu bạn không có sẵn user đó, hãy tạo bằng lệnh adduser. Bạn cần thực hiện bằng một user non-root với quyền sudo (không dùng user postgres):

```

$ sudo adduser vccloud

```

Khi đã có user mới, bạn có thể chuyển qua user đó để kết nối đến database:

```

$ sudo -i -u vccloud

$ psql

```

Hoặc cũng có thể làm như sau:

```

$ sudo -u vccloud psql

```

Lệnh này sẽ tự động đăng nhập cho bạn, nếu tất cả mọi thứ đã được cấu hình đúng.

Nếu bạn muốn user của bạn kết nối đến một database khác tên, bạn có thể chỉ định tên database như sau:

```

$ psql -d postgres

```

Sau khi đăng nhập, bạn có thể kiểm tra thông tin kết nối hiện tại bằng lệnh:

```

vccloud=# \conninfo

```

Output

```

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

```

BizFly Cloud là nhà cung cấp dịch vụ điện toán đám mây với chi phí thấp nhất, được vận hành bởi VCCorp.

BizFly Cloud là một trong 4 doanh nghiệp nòng cốt trong "Chiến dịch thúc đẩy chuyển đổi số bằng công nghệ điện toán đám mây Việt Nam" của Bộ TT&TT; đáp ứng đầy đủ toàn bộ tiêu chí, chỉ tiêu kỹ thuật của nền tảng điện toán đám mây phục vụ Chính phủ điện tử/chính quyền điện tử.

Độc giả quan tâm đến các giải pháp của BizFly Cloud có thể truy cập tại đây.