Biểu trưng PostgreSQL

Cách cài đặt nhiều phiên bản PostgreSQL trên Ubuntu 22.04 [CÀI NHANH]

PostgreSQL, hoặc Postgres, là một hệ quản trị cơ sở dữ liệu quan hệ cung cấp việc triển khai ngôn ngữ truy vấn SQL. Nó tuân thủ các tiêu chuẩn và có nhiều tính năng nâng cao như giao dịch đáng tin cậy và truy vấn đồng thời mà không gặp read lock.

Vì có thể có một số lý do khiến chúng tôi cài đặt nhiều phiên bản PostgreSQL trên cùng một máy, hướng dẫn này trình bày cách nhanh chóng thiết lập và chạy nhiều phiên bản PostgreSQL trên máy Ubuntu 22.04, từ cài đặt PostgreSQL đến thiết lập người dùng mới (hay còn gọi là vai trò) và cơ sở dữ liệu.

Thêm PPA PostgreSQL chính thức

Vì Ubuntu 22.04 chỉ có PostgreSQL phiên bản 14 và `apt` thậm chí không biết về các phiên bản khác của Postgres, chúng ta cần thêm PPA chính thức từ tác giả PostgreSQL

# Create the file repository configuration: 
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' 
# Import the repository signing key: 
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg 
# Update the package lists: 
sudo apt-get update 

Cài đặt Postgres 9.6, 10, 12, 14

Vì phiên bản 14 là phiên bản mặc định có sẵn trong Ubuntu 22.04, nên chúng ta ưu tiên cài đặt nó trước.

sudo apt install postgresql # version 14

Cài các phiên bản khác

sudo apt install postgresql-9.6 # version 9.6 
sudo apt install postgresql-10 # version 10 
sudo apt install postgresql-12 # version 12 
sudo apt install postgresql-client # client version 14 

Bây giờ, bạn sẽ có 4 phiên bản PostgreSQL được thiết lập và chạy trên các cổng khác nhau của cùng một máy.

Phiên bảnCổngVị trí Config
9.65433/etc/postgresql/9.6/main
105434/etc/postgresql/10/main
125435/etc/postgresql/12/main
145432/etc/postgresql/14/main
Đa phiên bản PostgreSQL

Thay đổi cổng của PostgreSQL

Theo mặc định, trình cài đặt PostgreSQL sẽ tự động đặt cổng cho một cụm PostgreSQL mới được cài đặt bằng cách tăng số cổng lên 1. Ví dụ trong quy trình ở trên, chúng ta đã cài đặt PostgreSQl 14 trước và nó lấy cổng mặc định 5432. PostgreSQL thứ hai được cài đặt là PostgreSQL 9.6 và nó đã lấy cổng 5433. Và cứ như vậy cho các phiên bản / cụm còn lại.

Trong trường hợp bạn muốn sắp xếp lại việc gán cổng, bạn có thể sửa đổi các tệp cấu hình PostgreSQL tương ứng với điều kiện cổng mới không được sử dụng bởi bất kỳ cụm PostgreSQL nào khác cũng như các dịch vụ khác trên cùng một máy chủ. Đây là vị trí tệp cấu hình cho từng phiên bản PostgreSQL:

Phiên bảnVị trí tệp cấu hình
9.6/etc/postgresql/9.6/main/postgresql.conf
10/etc/postgresql/10/main/postgresql.conf
12/etc/postgresql/12/main/postgresql.conf
14/etc/postgresql/14/main/postgresql.conf
Vị trí Lile Cấu hình PostgreSQL

Để thay đổi cổng, bạn có thể sử dụng bất kỳ trình soạn thảo văn bản nào để chỉnh sửa postgresql.conf. Ví dụ: tôi thích sử dụng nano:

nano /etc/postgresql/9.6/main/postgresql.conf

Sau khi postgresql.conf được mở, bạn có thể sử dụng Ctrl + W để tìm kiếm chỉ thị cấu hình có tên portvà thay đổi giá trị của nó thành một cổng bạn thích.

Thay đổi cổng PostgeSQL
Thay đổi cổng PostgeSQL

Sau khi sửa đổi tệp cấu hình, bạn sẽ cần khởi động lại tất cả các phiên bản postgresql:

sodu systemctl restart postgresql

Cài đặt các công cụ bổ sung

Gói contrib của postgresql bổ sung một số tiện ích và chức năng, chẳng hạn như unaccent giúp truy vấn không quan tâm đến dấu của chữ. Để cài đặt gói này, chỉ cần thực hiện các lệnh sau

sudo apt install postgresql-contrib-9.6 # for version 9.6 
sudo apt install postgresql-contrib # for other versions-

Đăng nhập PostgreSQL

Postgres sử dụng một khái niệm gọi là "role" để xử lý xác thực và ủy quyền. Mỗi role có tên người dùng và nhóm, tương tự như người dùng và nhóm kiểu như ở Linux/Unix thông thường.

Sau khi cài đặt, Postgres được thiết lập để sử dụng xác thực danh tính (ident authentication), nghĩa là nó liên kết các role của Postgres với tài khoản hệ thống Unix / Linux phù hợp. 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 đó.

Đồng thời, quy trình cài đặt cũng tạo một tài khoản người dùng gọi là postgres được liên kết với role Postgres mặc định. Để sử dụng tài khoản này để truy cập Postgres, bạn cần thực hiện một trong các lệnh sau:

sudo su - postgres

hoặc

sudo -i -u postgres

Sau đó, bạn có thể truy cập dấu nhắc PostgreSQL bằng cách chạy lệnh sau:

psql # no port specified here for the port 5432

Theo mặc định, nếu bạn không chỉ định cổng khi thực thi lệnh psql, cổng 5432 sẽ được sử dụng. Nó có nghĩa là bạn sẽ nhận được dấu nhắc lệnh PostgreSQL cho phiên bản 14. Nếu bạn muốn đăng nhập phiên bản 9.6, vui lòng chỉ định cổng tương ứng bằng cách sử dụng tham số -p . Ví dụ:

psql -p 5433 # this logs you in PostgreSQL 9.6

Bây giờ, bạn có thể đăng xuất Postgres để đưa bạn trở lại dấu nhắc lệnh Linux bằng cách nhập lệnh sau và nhấn Enter:

\q

Để thoát khỏi người dùng postgres của Linux, chỉ cần chạy lệnh:

exit

Có một cách khác để truy cập dấu nhắc PostgreSQL:

sudo -u postgres psql -p 5432 # adjust port 5432 for other versions 

Tạo role mới cho từng phiên bản PostgreSQL

Nếu bạn đang đăng nhập với tài khoản postgres , bạn có thể tạo một vai trò mới bằng cách thực hiện lệnh sau:

createuser --interactive

Nếu không, bạn có thể chạy lệnh sau:

sudo -u postgres createuser --interactive

Một trong hai cách trên, lệnh đã chọn sẽ yêu cầu bạn khai báo tên của role và hỏi bạn xem bạn có muốn cấp quyền superuser cho role mới hay không.

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

Khi được yêu cầu nhập tên của role, bạn có thể nhập giống với tài khoản Linux của mình để sau này không cần tạo tài khoản Linux khác. Trong trường hợp của tôi, tôi nhập `david`.

Vì cổng mặc định 5432 được gán cho phiên bản 14 trong hướng dẫn này, lệnh trên chỉ tạo role cho phiên bản 14. Để tạo role cho các phiên bản khác, bạn cần sử dụng tùy chọn -p để chỉ định một cổng tương ứng với phiên bản bạn muốn. Ví dụ: để tạo một role cho phiên bản 9.6 và 10, bạn có thể thực hiện các lệnh Linux sau:

sudo -u postgres createuser --interactive -p 5434

Đăng nhập PostgreSQl với role mới

Các lệnh sau sẽ đăng nhập bạn vào PostgreSQL 14 với role david cho cơ sở dữ liệu postgres.

sudo -u david psql postgres

Mặc định, hệ thống xác thực PostgreSQL cố gắng kết nối bạn với cơ sở dữ liệu có cùng tên với role. Đó là lý do tại sao chúng ta cần chỉ định postgres ở cuối lệnh để yêu cầu nó kết nối đến cơ sở dữ liệu có tên postgres.

Để đăng nhập phiên bản khác, ví dụ 9.6, vui lòng thực hiện lệnh sau:

sudo -u david psql -p 5433 postgres

Tạo mới cơ sở dữ liệu

Nếu bạn đã đăng nhập bằng tài khoản postgres, bạn có thể thực thi lệnh sau để tạo cơ sở dữ liệu có tên `david` cho PostgreSQL 14:

createdb david

Hoặc, nếu bạn thích sudo hơn khi bạn không đăng nhập bằng david

sudo -u postgres createdb david

Cài đặt pgAdmin 4

pgAdmin 4 là một công cụ giúp bạn quản lý cơ sở dữ liệu PostgreSQL của mình bằng giao diện người dùng đồ họa dựa trên web mang lại nhiều tiện lợi hơn so với việc sử dụng các dòng lệnh.

Bạn có thể đọc bài đăng của tôi về cách cài đặt pgAdmin 4 trên Ubuntu 22.04 và làm theo hướng dẫn ở đó để cài đặt pgAdmin 4 Desktop cho môi trường phát triển của bạn.

Xin lưu ý rằng, tùy thuộc vào nhu cầu của bạn, bạn có thể cần cài đặt pgAdmin 4 server hoặc để cài đặt pgAdmin 4 Desktop hoặc cả hai.

Để lại một câu trả lời