Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách Cài đặt PostgreSQL 12 trên Ubuntu 20.04 / 18.04 / 16.04. PostgreSQL là một hệ thống cơ sở dữ liệu mã nguồn mở và nó mạnh mẽ giống như các hệ thống cơ sở dữ liệu quan hệ khác.
Bạn có thể xem trang phát hành của postgreSQL 12.
Các bước cài đặt PostgreSQL 12 trên Ubuntu
Bước 1:Cập nhật hệ thống Ubuntu
Bạn nên cập nhật hệ thống trước khi cài đặt PostgreSQL.
cập nhật apt sudo
Bước 2:Cài đặt gói bắt buộc
sudo apt -y install vim bash-complete wget
Nếu gói đã được cài đặt thì bạn sẽ nhận được kết quả đầu ra bên dưới, bạn có thể bỏ qua nó.
Đầu ra mẫu:
root @ PostgreSQL:~ # sudo apt -y cài đặt vim bash-hoàn thành wgetReading danh sách gói ... Cây phụ thuộc DoneBuilding Đọc thông tin trạng thái ... Donebash-hoàn thành đã là phiên bản mới nhất (1:2.11-2ubuntu1) .vim đã là phiên bản mới nhất (2:8.2.0716-3ubuntu2) .wget đã là phiên bản mới nhất (1.20.3-1ubuntu1) .wget được đặt thành cài đặt thủ công. Gói sau đã được cài đặt tự động và không còn cần thiết:virtualbox-guest -utilsSử dụng 'sudo apt autoremove' để xóa nó. 0 đã nâng cấp, 0 mới cài đặt, 0 để xóa và 212 chưa nâng cấp.root@PostgreSQL:~ #
Bước 3:Thêm kho lưu trữ PostgreSQL 12
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/` lsb_release -cs`-pgdg main "| sudo tee /etc/apt/sources.list.d/pgdg.listBước 4:Cài đặt PostgreSQL 12 trên Ubuntu
sudo apt updateudo apt -y install postgresql-12 postgresql-client-12Đầu ra mẫu:
root @ PostgreSQL:~ # sudo apt -y install postgresql-12 postgresql-client-12Đọc danh sách gói ... Cây phụ thuộc DoneBuilding Đọc thông tin trạng thái ... Xong Gói sau đã được cài đặt tự động và không còn cần thiết:virtualbox- guest-utils Sử dụng 'sudo apt autoremove' để xóa nó. Các gói bổ sung sau sẽ được cài đặt:libcommon-sense-perl libjson-perl libjson-xs-perl libpq5libtypes-serialiser-perl pgdg-keyring postgresql-client-commonpostgresql-common sysstat package :postgresql-doc-12 isag Các gói MỚI sau sẽ được cài đặt:libcommon-sense-perl libjson-perl libjson-xs-perl libpq5libtypes-serialiser-perl pgdg-keyring postgresql-12 postgresql-client-12postgresql-client-common post sysstat0 được nâng cấp, 11 mới được cài đặt, 0 để xóa và 212 không được nâng cấp. Cần có 17,5 MB dung lượng lưu trữ. Sau thao tác này, 59,4 MB dung lượng đĩa bổ sung sẽ được sử dụng. Lấy:1 http://apt.postgresql.org/ pub / repos / apt groovy-pgdg / main amd64 libpq 5 amd64 13.3-1.pgdg20.10 + 1 [177 kB] Nhận:2 http://us.archive.ubuntu.com/ubuntu groovy / main amd64 libcommon-sense-perl amd64 3,75-1build2 [20,5 kB] Nhận:3 http://us.archive.ubuntu.com/ubuntu groovy / main amd64 libjson-perl tất cả 4.02000-2 [80,9 kB] Nhận:4 http://apt.postgresql.org/pub/repos/apt groovy-pgdg / main amd64 pgdg-keyring all 2018.2 [10,7 kB] Nhận:5 http://apt.postgresql.org/pub/repos/apt groovy-pgdg / main amd64 postgresql-client-common all 226.pgdg20.10 + 1 [ 90,6 kB] Nhận:6 http://us.archive.ubuntu.com/ubuntu groovy / main amd64 libtypes-serialiser-perl tất cả 1,0-1 [12,1 kB] Nhận:7 http://us.archive.ubuntu.com / ubuntu groovy / main amd64 libjson-xs-perl amd64 4.020-1build1 [83,7 kB] Nhận:8 http://apt.postgresql.org/pub/repos/apt groovy-pgdg / main amd64 postgresql-client-12 amd64 12,7 -1.pgdg20.10 + 1 [1,429 kB] Nhận:9 http://us.archive.ubuntu.com/ubuntu groovy / main amd64 sysstat amd64 12.4.0-1 [471 kB] Lấy:10 http:// apt.postgresql.org/pub/repos/apt groovy-pgdg / main amd64 postgresql-common all 226.pgdg20.10 + 1 [2 46 kB] Nhận:11 http://apt.postgresql.org/pub/repos/apt groovy-pgdg / main amd64 postgresql-12 amd64 12.7-1.pgdg20.10 + 1 [14,9 MB] Tìm nạp 17,5 MB trong 15 giây ( 1.141 kB / s) Định cấu hình trước gói ... Chọn gói libcommon-sense-perl chưa được chọn trước đó. (Đang đọc cơ sở dữ liệu ... 192977 tệp và thư mục hiện được cài đặt.) Đang chuẩn bị giải nén ... / 00-libcommon-sense-perl_3.75 -1build2_amd64.deb ... Đang giải nén libcommon-sense-perl (3.75-1build2) ... Chọn gói libjson-perl chưa được chọn trước đó.Chuẩn bị giải nén ... / 01-libjson-perl_4.02000-2_all.deb ... Đang mở gói libjson-perl (4.02000-2) ... Đang chọn gói chưa được chọn trước đó libtypes-serialiser-perl.Chuẩn bị để giải nén ... / 02-libtypes-serialiser-perl_1.0-1_all.deb ... Đang mở gói libtypes-serialiser- perl (1.0-1) ... Đang chọn gói chưa được chọn trước đó libjson-xs-perl.Chuẩn bị để giải nén ... / 03-libjson-xs-perl_4.020-1build1_amd64.deb ... Đang mở gói libjson-xs-perl (4.020 -1build1) ... Chọn gói chưa được chọn trước đó libpq5:amd64.P sửa chữa để giải nén ... / 04-libpq5_13.3-1.pgdg20.10 + 1_amd64.deb ... Giải nén libpq5:amd64 (13.3-1.pgdg20.10 + 1) ... Chọn gói pgdg-keyring chưa được chọn trước đó Chuẩn bị để giải nén ... / 05-pgdg-keyring_2018.2_all.deb ... Đang mở gói pgdg-keyring (2018.2) ... Đang chọn gói chưa được chọn trước đó postgresql-client-common.Chuẩn bị để giải nén ... / 06-postgresql -client-common_226.pgdg20.10 + 1_all.deb ... Đang giải nén postgresql-client-common (226.pgdg20.10 + 1) ... Đang chọn gói chưa được chọn trước đó postgresql-client-12. Chuẩn bị để giải nén ... / 07-postgresql-client-12_12.7-1.pgdg20.10 + 1_amd64.deb ... Đang giải nén postgresql-client-12 (12.7-1.pgdg20.10 + 1) ... Đang chọn gói postgresql-common chưa được chọn trước đó. Đang chuẩn bị giải nén ... / 08-postgresql-common_226.pgdg20.10 + 1_all.deb ... Thêm 'chuyển hướng / usr / bin / pg_config vào /usr/bin/pg_config.libpq-dev bằng postgresql-common'Unpacking postgresql-common (226.pgdg20.10 + 1) ... Đang chọn gói chưa được chọn trước đó postgresql-12. Chuẩn bị để giải nén ... / 09-postgresql-12_12.7-1.pgdg20.10 + 1_amd64.deb ... Đang giải nén postgresql-12 (12.7-1.pgdg20.10 + 1) ... Chọn gói sysstat chưa được chọn trước đó. giải nén ... / 10-sysstat_12.4.0-1_amd64.deb ... Giải nén sysstat (12.4.0-1) ... Thiết lập pgdg-keyring (2018.2) ... Xóa khóa apt.postgresql.org khỏi đáng tin cậy. gpg:OThiết lập libpq5:amd64 (13.3-1.pgdg20.10 + 1) ... Thiết lập libcommon-sense-perl (3.75-1build2) ... Thiết lập libtypes-serialiser-perl (1.0-1) .. . Thiết lập libjson-perl (4.02000-2) ... Thiết lập sysstat (12.4.0-1) ... Tạo tệp cấu hình / etc / default / sysstat với phiên bản cập nhật-thay thế mới:using / usr / bin / sar. sysstat để cung cấp / usr / bin / sar (sar) ở chế độ tự động /etc/systemd/system/sysstat.service.wants/sysstat-summary.timer E5 /lib/systemd/system/sysstat-summary.timer. Liên kết biểu tượng được tạo /etc/systemd/system/multi-user.target.wants/sys stat.service → /lib/systemd/system/sysstat.service.Thiết lập postgresql-client-common (226.pgdg20.10 + 1) ... Thiết lập libjson-xs-perl (4.020-1build1) ... up postgresql-client-12 (12.7-1.pgdg20.10 + 1) ... cập nhật-lựa chọn thay thế:sử dụng /usr/share/postgresql/12/man/man1/psql.1.gz để cung cấp / usr / share / man / man1 / psql.1.gz (psql.1.gz) ở chế độ tự động Thiết lập postgresql-common (226.pgdg20.10 + 1) ... Thêm postgres của người dùng vào nhóm ssl-certCreating tệp cấu hình / etc / postgresql- common / createecluster.conf với phiên bản mới system / postgresql.service.Thiết lập postgresql-12 (12.7-1.pgdg20.10 + 1) ... Tạo cụm PostgreSQL mới 12 / main ... / usr / lib / postgresql / 12 / bin / initdb -D / var / lib / postgresql / 12 / main --auth-local peer --auth-host md5 Các tệp thuộc hệ thống cơ sở dữ liệu này sẽ do người dùng "postgres". Người dùng này cũng phải sở hữu tiến trình máy chủ. Cụm cơ sở dữ liệu sẽ được khởi tạo với ngôn ngữ "en_US.UTF-8". Mã hóa cơ sở dữ liệu mặc định theo đó đã được đặt thành "UTF8". Cấu hình tìm kiếm văn bản mặc định sẽ là được đặt thành "tiếng anh". Tổng kiểm tra trang dữ liệu bị vô hiệu hóa. quyền sửa lỗi trên thư mục hiện có / var / lib / postgresql / 12 / main ... okcreating subdirectories ... bỏ chọn triển khai bộ nhớ được chia sẻ động ... posixselecting max_connections mặc định ... 100selecting default shared_buffers ... 128MBchọn múi giờ mặc định ... America / New_Yorkcreating tệp cấu hình ... okrunning bootstrap script ... okperforming post-bootstrap khởi chạy ... oksyncing dữ liệu vào đĩa ... okSuccess. Bây giờ bạn có thể khởi động máy chủ cơ sở dữ liệu bằng cách sử dụng:pg_ctlcluster 12 main startVer Cluster Port Status Owner Thư mục dữ liệu Log file12 main 5432 down postgres / var / lib / postgresql / 12 / main /var/log/postgresql/postgresql-12-main.logupdate- lựa chọn thay thế:sử dụng /usr/share/postgresql/12/man/man1/postmaster.1.gz toprovide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) ở chế độ tự động Trình kích hoạt xử lý cho systemd ( 246.6-1ubuntu1) ... Trình kích hoạt xử lý cho man-db (2.9.3-2) ... Trình kích hoạt xử lý cho libc-bin (2.32-0ubuntu3) ... root @ PostgreSQL:~ #Bước 5:Kiểm tra trạng thái dịch vụ PostgreSQL
trạng thái systemctl postgresql.service
Đầu ra mẫu:
root @ PostgreSQL:~ # systemctl status postgresql.service ● postgresql.service - PostgreSQL RDBMSLoaded:đã tải (/lib/systemd/system/postgresql.service; đã kích hoạt; nhà cung cấp p> Active:hoạt động (đã thoát) kể từ CN 2021- 05-16 09:17:56 EDT; 1 phút 56 giây trước PID chính:10932 (mã =thoát, trạng thái =0 / THÀNH CÔNG) Nhiệm vụ:0 (giới hạn:4648) Bộ nhớ:0BCGroup:/system.slice/postgresql.service 17:56 PostgreSQL systemd [1]:Khởi động PostgreSQL RDBMS ... Ngày 16 tháng 5 09:17:56 PostgreSQL systemd [1]:Hoàn thành PostgreSQL RDBMS.root@PostgreSQL:~ #Bước 6:Kết nối PostgreSQL
sudo su - postgresBước 7:Đặt lại mật khẩu PostgreSQL
Bạn nên đặt lại mật khẩu thành mật khẩu mạnh
psql -c "thay đổi postgres của người dùng bằng mật khẩu 'StrongAdminP @ ssw0rd'"Đầu ra mẫu:
root @ PostgreSQL:~ # sudo su - postgrespostgres @ PostgreSQL:~ $ postgres @ PostgreSQL:~ $ psql -c "thay đổi postgres của người dùng bằng mật khẩu 'StrongAdminP @ ssw0rd'" ALTER ROLEpostgres @ PostgreSQL:~ $Bước 8:Tạo cơ sở dữ liệu PostgreSQL
$ psql $ TẠO CƠ SỞ DỮ LIỆU firsttestdb; $ TẠO NGƯỜI DÙNG testuser1 VỚI MẬT KHẨU ĐƯỢC ĐĂNG KÝ 'MyDBP @ ss0rd'; $ CẤP TẤT CẢ CÁC QUYỀN RIÊNG TƯ TRÊN CƠ SỞ DỮ LIỆU firsttestdb cho testuser1;
Liệt kê cơ sở dữ liệu PostgreSQL:
$ \ l
Cách kết nối với cơ sở dữ liệu PostgreSQL:
\ c firsttestdbĐầu ra mẫu:
postgres =# \ c firsttestdbBạn hiện được kết nối với cơ sở dữ liệu "firsttestdb" với tư cách là người dùng "postgres" .firsttestdb =#Bây giờ, chúng ta sẽ xem cách cho phép kết nối từ xa với PostgreSQL DB.
Bước 9:Cho phép kết nối từ xa với Cơ sở dữ liệu PostgreSQL
sudo nano /etc/postgresql/12/main/postgresql.confDòng bỏ ghi chú “nghe_addresses =‘ * ’ “
Lưu tệp và khởi động lại dịch vụ PostgreSQL
sudo systemctl khởi động lại postgresqlBước 10:Kiểm tra địa chỉ Nghe
netstat -tunelp | grep 5432Đầu ra mẫu:
root @ PostgreSQL:~ # netstat -antple | grep 5432tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 135 253939 13850 / postgres tcp6 0 0 :::5432 :::* LISTEN 135 253940 13850 / postgres root @ PostgreSQL:~ #Kết thúc bài viết, chúng ta đã biết cách Cài đặt PostgreSQL 12 trên Ubuntu 20.04 / 18.04 / 16.04.