Jak zainstalować PostgreSQL na Ubuntu, CentOS i Windows?

Opublikowany: 2021-06-08

PostgreSQL to jeden z popularnych, wieloplatformowych systemów obiektowo-relacyjnych baz danych typu open source, który jest solidny, wydajny i niezawodny w silnej społeczności.

Pochodzi z 1986 roku w ramach projektu POSTGRES na Uniwersytecie Kalifornijskim w Berkeley i prowadzi 30 lat aktywnego rozwoju na swojej głównej platformie. Jego stała wydajność przez lata potwierdziła jego integralność, architekturę i rozszerzalność do użytku w przedsiębiorstwach. Jest zgodny z ACID i oferuje obsługę potężnych dodatków, takich jak popularny przedłużacz bazy danych geoprzestrzennych PostGIS.

W tym artykule omówimy instalację PostgreSQL na popularnych platformach.

Więc zacznijmy.

Ubuntu

PostgreSQL jest dostępny dla wszystkich smaków i wersji Ubuntu. Masz wybór, czy chcesz zainstalować i używać wersji dostępnej domyślnie z twoją wersją Ubuntu i obsługiwaną przez cały okres jej istnienia, czy też użyć określonej wersji, dodając repozytorium PostgreSQL i instalując to samo. Omówimy tutaj obie opcje.

Aby użyć domyślnej obsługiwanej wersji dostarczonej przez repozytorium Ubuntu, uruchom:

 $ sudo apt-get update $ sudo apt-get -y install postgresql

Repozytorium PostgreSQL Apt obsługuje aktualne wersje LTS Ubuntu, tj. 20.04 , 18.04 i 16.04 . Chociaż może nie być w pełni obsługiwany, te same pakiety działają również w wersjach innych niż LTS, używając najbliższej wersji LTS.

Aby użyć repozytorium PostgreSQL apt , wykonaj następujące kroki:

 $ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' $ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - $ sudo apt-get update $ sudo apt-get -y install postgresql

Aby zainstalować konkretną wersję z repozytorium PostgreSQL, zamiast samego postgresql który odnosi się do najnowszej wersji, określ ją jako postgresql-12 :

 $ sudo apt-get -y install postgresql-12

Repozytorium zawiera również różne pakiety, w tym dodatki innych firm. Na przykład powszechnie dostępne pakiety dla wersji 12 PostgreSQL obejmują:

postgresql-klient-12 biblioteki klienta i pliki binarne klienta
postgresql-12 podstawowy serwer bazy danych
postgresql-contrib-9.x dodatkowe dostarczane moduły (część pakietu postgresql-xx w wersji 10 i nowszych)
libpq-dev biblioteki i nagłówki do programowania frontendu w języku C
postgresql-server-dev-12 biblioteki i nagłówki do programowania backendu w języku C
pgadmin4 Graficzne narzędzie administracyjne pgAdmin 4

Po zakończeniu instalacji możesz sprawdzić stan usługi DB za pomocą poniższego polecenia:

 $ sudo systemctl status postgresql.service

W przypadku Ubuntu po instalacji usługa powinna być włączona i działać w następujący sposób:

 $ sudo systemctl status postgresql.service ● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Sun 2021-06-06 16:06:45 UTC; 46s ago Main PID: 3364 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 1113) Memory: 0B CGroup: /system.slice/postgresql.service Jun 06 16:06:45 ubuntu20cloud systemd[1]: Starting PostgreSQL RDBMS... Jun 06 16:06:45 ubuntu20cloud systemd[1]: Finished PostgreSQL RDBMS. $

CentOS

Podobnie jak Ubuntu, repozytoria RHEL/CentOS zawierają również określoną wersję PostgreSQL, która jest obsługiwana przez cały okres istnienia systemu operacyjnego. Możesz zainstalować to samo za pomocą:

 $ sudo yum install -y postgresql-server

lub możesz użyć DNF, jeśli używasz CentOS 8.

 $ sudo dnf install -y postgresql-server

Uruchom poniższe polecenia po instalacji, aby zainicjować DB, włączyć usługę PostgreSQL i uruchomić ją:

 $ sudo postgresql-setup initdb $ sudo systemctl enable postgresql.service $ sudo systemctl start postgresql.service

Lub, aby korzystać z pakietów bezpośrednio z repozytoriów PostgreSQL yum , musimy dodać repozytorium jako:

 $ sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

A następnie, aby zainstalować konkretną wersję PostgreSQL, taką jak wersja 13, która jest najnowszą stabilną wersją w momencie pisania tego artykułu, użyj:

 $ sudo yum install -y postgresql13-server

Repozytorium yum zawiera również dodatkowe pakiety dla PostgreSQL, z których niektóre z najważniejszych są wymienione poniżej:

klient-postgresql biblioteki i pliki binarne klientów
serwer postgresql podstawowy serwer bazy danych
postgresql-dokładanie dodatkowe dostarczone moduły
postgresql-devel biblioteki i nagłówki do rozwoju języka C

Wykonaj poniższe kroki po instalacji, aby zainicjować DB, włączyć usługę PostgreSQL i uruchomić ją:

 $ sudo /usr/pgsql-13/bin/postgresql-13-setup initdb $ sudo systemctl enable postgresql-13 $ sudo systemctl start postgresql-13

Możesz sprawdzić stan usługi DB za pomocą poniższego polecenia:

 $ sudo systemctl status postgresql.service ● postgresql.service - PostgreSQL database server Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2021-06-06 16:39:35 GMT; 1min 12s ago Process: 7011 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=0/SUCCESS) Process: 7005 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) CGroup: /system.slice/postgresql.service ├─7014 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432 ├─7015 postgres: logger process ├─7017 postgres: checkpointer process ├─7018 postgres: writer process ├─7019 postgres: wal writer process ├─7020 postgres: autovacuum launcher process └─7021 postgres: stats collector process Jun 06 16:39:34 centos7cloud systemd[1]: Starting PostgreSQL database server... Jun 06 16:39:35 centos7cloud systemd[1]: Started PostgreSQL database server. $

Okna

Instalatory Windows 32-bit i 64-bit są dostępne na oficjalnej stronie PostgreSQL tutaj.

  • Możesz pobrać odpowiedni plik binarny w oparciu o wymaganą wersję i architekturę.

postgresql-pobierz

  • Będziemy pobierać najnowszą dostępną wersję, czyli v13.3 na 64-bitową platformę Windows. Po zakończeniu pobierania uruchom instalator, klikając go dwukrotnie.

postgresql-instalacja-uruchom

  • Kliknij Dalej, aby kontynuować.

postgresql-lokalizacja-instalacji

  • Kliknij Dalej, aby kontynuować z domyślną ścieżką lub określ niestandardową ścieżkę instalacji.

  • Możesz pozostawić wybrane domyślne komponenty i kliknąć Dalej, aby kontynuować.

postgresql-install-datadir

  • Następnie prosi o lokalizację katalogu danych; można to zachować jako domyślne, chyba że masz do niego przypisany osobny dedykowany dysk lub katalog. Kliknij Dalej, aby kontynuować.

postgresql-install-password

  • Określ silne hasło, które zostanie przypisane użytkownikowi postgres . Po zakończeniu kliknij Dalej.

port-instalacyjny postgresql

  • Domyślny port 5432 powinien być dobry w większości przypadków. Kliknij Dalej, aby przejść do następnej strony.

postgresql-install-locale

  • Wybierz ustawienia regionalne bazy danych i kliknij Dalej, aby kontynuować.

Potwierdzenie instalacji postgresql

  • Wszystkie wybrane ustawienia kreatora instalacji zostaną wyświetlone, aby można je było przejrzeć i potwierdzić. Jeśli coś wymaga zmiany, wróć i zmień to samo lub kliknij Dalej, aby przejść do następnej strony.

postgresql-install-confirmation-1

  • Instalator pokaże, że jest gotowy do kontynuowania instalacji. Gdy wszystko będzie gotowe, kliknij Dalej, aby rozpocząć instalację.

postgresql-install-progress

  • Poczekaj na zakończenie instalacji. Zostanie wyświetlone potwierdzenie tego samego.

postgresql-instalacja zakończona

  • Po zakończeniu możesz odznaczyć Stack Builder i kliknąć Zakończ, aby wyjść z kreatora instalacji. Kliknij menu Start i wyszukaj SQL Shell (psql) i kliknij jego ikonę, aby otworzyć powłokę psql .

psql-menu startowe

  • SQL Shell (psql) otwiera się, gdzie możesz wchodzić w interakcję z instancją PostgreSQL po określeniu szczegółów połączenia. Wszystkie elementy można wybrać jako domyślne, naciskając klawisz Enter z wyjątkiem hasła, w którym należy wprowadzić hasło określone dla użytkownika postgres podczas kreatora instalacji. Spowoduje to wyświetlenie monitu postgres=# .

okna powłoki psql-sql

Połącz się z PostgreSQL

Użytkownik postgres jest tworzony automatycznie po instalacji, który ma dostęp superadmin do instancji DB. W systemie Linux jako uprzywilejowany użytkownik możesz przełączyć się na to konto jako:

 $ sudo su - postgres

Po postgres możemy zresetować hasło użytkownika postgres jako:

 $ psql -c "alter user postgres with password '[email protected]'"

A następnie uruchom znak zachęty PostgreSQL z psql jako:

 $ psql

Spowoduje to wyświetlenie monitu PostgreSQL:

 $ psql psql (12.7 (Ubuntu 12.7-0ubuntu0.20.04.1)) Type "help" for help. postgres=#

W tym wierszu możesz wchodzić w interakcję z bazą danych i wykonywać zadania administratora lub użytkownika bazy danych. W ramach demonstracji poniższe kroki tworzą bazę danych i użytkownika, a następnie przydzielają nowemu użytkownikowi uprawnienia do pracy na nowej bazie danych:

 postgres=# CREATE DATABASE geekflaredb; CREATE DATABASE postgres=# CREATE USER geekuser WITH ENCRYPTED PASSWORD '[email protected]'; CREATE ROLE postgres=# GRANT ALL PRIVILEGES ON DATABASE geekflaredb to geekuser; GRANT postgres=#

Następnie możemy wyświetlić listę baz danych za pomocą polecenia \l :

 postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+----------+----------+---------+---------+----------------------- geekflaredb | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =Tc/postgres + | | | | | postgres=CTc/postgres+ | | | | | geekuser=CTc/postgres postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows) postgres=#

Teraz możesz po prostu połączyć się z bazą danych za pomocą:

 postgres=# \c geekflaredb You are now connected to database "geekflaredb" as user "postgres". geekflaredb=#

Streszczenie

PostgreSQL jest jedną z powszechnie stosowanych baz danych w świecie przedsiębiorstw ze względu na jej niezawodność, zestaw funkcji i skalowalność. Jest łatwy do nauczenia i stara się być zgodny ze standardami SQL.

Na oficjalnej stronie PostgreSQL dostępny jest samouczek.