Jak zainstalować bazę danych PostgreSQL na Ubuntu 22.04
Zainstaluj bazę danych PostgreSQL na Ubuntu 22.04
Cel
PostgreSQL jest jedną z najbardziej znanych baz danych na świecie. Prosta obsługa i podejście open source są głównymi elementami przemawiającymi za popularnością tego rozwiązania. Aby dowiedzieć się więcej o możliwościach PostgreSQL, sprawdź oficjalną dokumentację.
Z tego tutoriala dowiesz się, jak zainstalować bazę danych PostgreSQL na dystrybucji Linuksa Ubuntu 22.04.
Wymagania
W tym tutorialu przyjmujemy, że posiadasz instancję Compute w ramach Public Cloud, serwer VPS lub serwer Bare Metal z systemem Ubuntu 22.04 oraz podstawowe umiejętności w zakresie korzystania z wierszy poleceń. Na potrzeby tego tutorialu opieramy się na przykładzie instancji Compute w Public Cloud. Jeśli potrzebujesz pomocy w skonfigurowaniu instancji Public Cloud z systemem Ubuntu 22.04, skorzystaj z tego przewodnika: Tworzenie pierwszej instancji Public Cloud i łączenie się z nią.
Wskazówki
Dzięki temu tutorialowi zainstalujesz PostgreSQL i utworzysz bazę danych.
Instalacja bazy danych PostgreSQL
W momencie tworzenia tego tutoriala najnowsza wersja PostgreSQL to 14.x. Wszystkie dostępne wersje znajdziesz w sekcji pobierania oficjalnej dokumentacji.
Aby zainstalować PostgreSQL na Ubuntu, użyj polecenia apt-get:
sudo apt-get -y install postgresql-14
Wynik wyświetli się w następujący sposób:
$ sudo apt-get -y install postgresql-14 Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: libcommon-sense-perl libjson-perl libjson-xs-perl libllvm14 libpq5 libsensors-config libsensors5 libtypes-serialiser-perl postgresql-client-14 postgresql-client-common postgresql-common ssl-cert sysstat Suggested packages: lm-sensors postgresql-doc-14 isag The following NEW packages will be installed: libcommon-sense-perl libjson-perl libjson-xs-perl libllvm14 libpq5 libsensors-config libsensors5 libtypes-serialiser-perl postgresql-14 postgresql-client-14 postgresql-client-common postgresql-common ssl-cert sysstat 0 upgraded, 14 newly installed, 0 to remove and 0 not upgraded. Need to get 42.4 MB of archives. After this operation, 161 MB of additional disk space will be used. Get:1 http://nova.clouds.archive.ubuntu.com/ubuntu jammy/main amd64 libcommon-sense-perl amd64 3.75-2build1 [21.1 kB] ... update-alternatives: using /usr/share/postgresql/14/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode Processing triggers for man-db (2.10.2-1) ... Processing triggers for libc-bin (2.35-0ubuntu3) ... Scanning processes... Scanning linux images... Running kernel seems to be up-to-date. No services need to be restarted. No containers need to be restarted. No user sessions are running outdated binaries. No VM guests are running outdated hypervisor (qemu) binaries on this host.
Zwróć uwagę, że pakiet Ubuntu zawiera CLI psql.
Sprawdź instalację:
sudo su - postgres postgres@ubuntu-machine:~$ psql
Wynik wyświetli się w następujący sposób:
$ sudo su - postgres postgres@tutos-ugc:~$ psql psql (14.2 (Ubuntu 14.2-1ubuntu1)) Type "help" for help. postgres=# exit postgres@tutos-ugc:~$
Pamiętaj, że instalacja PostgreSQL domyślnie tworzy konto postgres, które jest kontem administratora bazy danych. Zachowaj ostrożność, kiedy z niego korzystasz.
Dodanie użytkownika do PostgreSQL
Istnieją dwie metody dodawania użytkowników w PostgreSQL: za pomocą zapytań SQL lub poleceń bash. W tym tutorialu opisujemy wyłącznie sposób SQL, ponieważ jest on bardziej wyczerpujący. Informacje o użyciu polecenia bash znajdziesz w oficjalnej dokumentacji. Aby utworzyć nowe konto, użyj domyślnego konta postgres oraz CLI psql.
Utwórz rolę (rodzaj połączenia użytkowników i uprawnień w PostgreSQL):
postgres=# CREATE USER foo WITH PASSWORD 'bar';
Wynik wyświetli się w następujący sposób:
postgres=# CREATE USER foo WITH PASSWORD 'bar'; CREATE ROLE postgres=#
Utworzenie bazy danych
Utwórz bazę danych o nazwie "example" z użytkownikiem "foo" jako właścicielem:
postgres=# CREATE DATABASE example OWNER foo
Wynik wyświetli się w następujący sposób:
postgres=# CREATE DATABASE example OWNER foo CREATE DATABASE postgres-#
Aby korzystać z nowego konta użytkownika, utwórz użytkownika systemu Linux (tego typu polecenie wymaga uprawnień root):
adduser foo
Wynik wyświetli się w następujący sposób:
$ sudo su - $ root@tutos-ugc:~# adduser foo Adding user `foo' ... Adding new group `foo' (1001) ... Adding new user `foo' (1001) with group `foo' ... Creating home directory `/home/foo' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for foo Enter the new value, or press ENTER for the default Full Name []: Foo Bar Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Y $ root@tutos-ugc:~# exit
Przetestuj nowe konto:
sudo su - foo psql -d example
Wynik wyświetli się w następujący sposób:
ubuntu@tutos-ugc:~$ sudo su - foo foo@tutos-ugc:~$ psql -d example psql (14.2 (Ubuntu 14.2-1ubuntu1)) Type "help" for help. example=>
Stwórz listę baz danych:
postgres=# \l
Wynik wyświetli się w następujący sposób:
postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+---------+---------+----------------------- example | foo | UTF8 | C.UTF-8 | C.UTF-8 | 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)
Utworzenie tabeli i korzystanie z niej
Twórz tabele i wykorzystuj je do Twoich celów.
W przypadku następujących poleceń użyj uprzednio utworzonego użytkownika foo.
example=> CREATE TABLE first_table (id INT PRIMARY KEY NOT NULL, column1 CHAR(50));
Wynik wyświetli się w następujący sposób:
example=> CREATE TABLE first_table (id INT PRIMARY KEY NOT NULL, column1 CHAR(50)); CREATE TABLE example=>
Teraz możesz używać first_table w zapytaniach SQL:
example=> INSERT INTO first_table (id, column1) VALUES (1, 'example'); example=> SELECT * FROM first_table;
Wynik wyświetli się w następujący sposób:
example=> INSERT INTO first_table (id, column1) VALUES (1, 'example'); INSERT 0 1 example=> SELECT * FROM first_table; id | column1 ----+---------------------------------------------------- 1 | example (1 row)
Baza danych PostgreSQL została prawidłowo zainstalowana i skonfigurowana na Ubuntu 22.04.