Giới thiệu
PostgreSQL là một hệ thống cơ sở dữ liệu quan hệ đối tượng mã nguồn mở mạnh mẽ, sử dụng và mở rộng ngôn ngữ SQL kết hợp với nhiều tính năng giúp lưu trữ và chia tỷ lệ một cách an toàn các khối lượng công việc dữ liệu phức tạp nhất.
Hướng dẫn này trình bày cách nhanh chóng thiết lập và chạy Postgres trên máy chủ Ubuntu 20.04, từ cài đặt PostgreSQL đến thiết lập người dùng và cơ sở dữ liệu mới.
Điều kiện tiên quyết
Để làm theo hướng dẫn này, bạn sẽ cần một máy chủ Ubuntu 20.04. Máy chủ của bạn phải có người dùng không phải root có quyền sudo và tường lửa cơ bản.
Bước 1 – Cài đặt PostgreSQL
Để cài đặt PostgreSQL, trước tiên hãy làm mới index của local package của máy chủ của bạn:
sudo apt update
Sau đó, cài đặt gói Postgres cùng với một gói -contrib
bổ sung một số tiện ích và chức năng bổ sung:
sudo apt install postgresql postgresql-contrib
Bước 2 – Sử dụng Database và PostgreSQL Role
Theo mặc định, Postgres sử dụng một khái niệm gọi là “role” để xử lý xác thực và ủy quyền. Về mặt nào đó, chúng tương tự như những người dùng và nhóm kiểu Unix thông thường.
Sau khi cài đặt, Postgres được thiết lập để sử dụng ident xác thực, có nghĩa là nó liên kết role Postgres với một tài khoản phù hợp với hệ thống Unix / Linux. Nếu một role 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 role đó.
Quy trình cài đặt đã tạo một tài khoản người dùng được gọi là postgres được liên kết với role Postgres mặc định. Có một số cách để sử dụng tài khoản này để truy cập Postgres. Một cách là chuyển sang tài khoản postgres trên máy chủ của bạn bằng cách nhập:
sudo -i -u postgres
Sau đó, bạn có thể truy cập lời nhắc Postgres bằng cách nhập:
psql
Thao tác này sẽ đăng nhập bạn vào dấu nhắc PostgreSQL và từ đây bạn có thể tự do tương tác với hệ quản trị cơ sở dữ liệu ngay lập tức.
Để thoát khỏi lời nhắc PostgreSQL, hãy chạy như sau:
\q
Thao tác này sẽ đưa bạn trở lại dấu nhắc lệnh của postgres Linux. Để quay lại người dùng hệ thống thông thường của bạn, hãy chạy lệnh exit
:
exit
Một cách khác để kết nối với lời nhắc Postgres là chạy lệnh psql
với tài khoản postgres trực tiếp với sudo
:
sudo -u postgres psql
Thao tác này sẽ giúp bạn đăng nhập trực tiếp vào Postgres mà không có trình shell bash
trung gian ở giữa.
Một lần nữa, bạn có thể thoát phiên Postgres tương tác bằng cách nhập:
\q
Bước 3 – Tạo một role mới
Nếu bạn đã đăng nhập bằng tài khoản postgres , bạn có thể tạo một role mới bằng cách nhập:
createuser --interactive
Thay vào đó, nếu bạn muốn sử dụng sudo
cho từng lệnh mà không cần chuyển từ tài khoản thông thường của mình, hãy nhập:
sudo -u postgres createuser --interactive
Dù bằng cách nào, tập lệnh sẽ nhắc bạn với một số lựa chọn và dựa trên phản hồi của bạn, thực hiện các lệnh Postgres chính xác để tạo người dùng theo thông số kỹ thuật của bạn.
OutputEnter name of role to add: sammy Shall the new role be a superuser? (y/n) y
Bước 4 – Tạo cơ sở dữ liệu mới
Một giả định khác mà hệ thống xác thực Postgres đưa ra theo mặc định là đối với bất kỳ vai trò nào được sử dụng để đăng nhập, vai trò đó sẽ có một cơ sở dữ liệu có cùng tên mà nó có thể truy cập.
Điều này có nghĩa là nếu người dùng bạn đã tạo trong phần cuối cùng được gọi là sammy , thì role đó sẽ cố gắng kết nối với cơ sở dữ liệu cũng được gọi là “sammy” theo mặc định. Bạn có thể tạo cơ sở dữ liệu thích hợp bằng lệnh createdb
.
Nếu bạn đăng nhập bằng tài khoản postgres , bạn sẽ nhập một cái gì đó như:
createdb sammy
Thay vào đó, nếu bạn muốn sử dụng sudo
cho từng lệnh mà không cần chuyển từ tài khoản thông thường của mình, bạn sẽ nhập:
sudo -u postgres createdb sammy
Bước 5 – Mở dòng lệnh của Postgres với role mới
Để đăng nhập với ident
xác thực dựa trên role mới, 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 người dùng Linux phù hợp, bạn có thể tạo một người dùng bằng lệnh adduser
. Bạn sẽ phải thực hiện việc này từ tài khoản không phải root của mình với đặc quyền sudo
(nghĩa là không đăng nhập với tư cách người dùng postgres ):
sudo adduser sammy
Khi tài khoản mới này khả dụng, bạn có thể chuyển đổi và kết nối với cơ sở dữ liệu bằng cách nhập:
sudo -i -u sammy psql
Hoặc, bạn có thể làm điều này bằng một câu lệnh:
sudo -u sammy psql
Lệnh này sẽ tự động đăng nhập cho bạn, giả sử rằng tất cả các thành phần đã được định cấu hình đúng cách.
Nếu bạn muốn người dùng của mình kết nối với một cơ sở dữ liệu khác, bạn có thể làm như vậy bằng cách chỉ định cơ sở dữ liệu 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 của mình bằng cách nhập:
\conninfo
Output:
You are connected to database "sammy" as user "sammy" via socket in "/var/run/postgresql" at port "5432".
Phần kết luận
Bây giờ bạn đã được thiết lập với PostgreSQL trên máy chủ Ubuntu 20.04 của mình. Hãy theo dõi trang để nhận thêm những bài viết mới bổ ích nhé.