Pereiti prie pagrindinio turinio

PostgreSQL 17 diegimas Ubuntu/Debian sistemose

Šioje pamokoje parodysime, kaip įdiegti PostgreSQL 17 Ubuntu 22.04 ir naujesnėse versijose bei Debian 12 sistemoje.

PostgreSQL, dar vadinama Postgres, yra viena populiariausių duomenų bazių valdymo sistemų, tinkanti įvairaus dydžio projektams: nuo nedidelių sprendimų iki didelės apkrovos sistemų. Ji suteikia daugybę funkcijų, kurios palengvina aplikacijų kūrimą, padeda užtikrinti duomenų vientisumą ir efektyviai valdyti duomenis.

1. Diegimas

1.1 Sistemos paketų atnaujinimas

Prieš diegdami PostgreSQL atnaujinkite sistemos paketų sąrašą:

apt update

1.2 PostgreSQL saugyklos pridėjimas

Numatytosiose Ubuntu ir Debian paketų saugyklose dažniausiai pateikiamos senesnės PostgreSQL versijos. Norėdami įdiegti PostgreSQL 17, pridėkite oficialią PostgreSQL paketų saugyklą:

sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

1.3 PostgreSQL GPG rakto importavimas

Importuokite oficialų PostgreSQL paketų pasirašymo GPG raktą:

curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg

1.4 Pakartotinis paketų sąrašo atnaujinimas

Pridėję naują saugyklą dar kartą atnaujinkite paketų sąrašą:

apt update

1.5 PostgreSQL 17 diegimas

Dabar galite įdiegti PostgreSQL 17:

apt install postgresql-17

1.6 PostgreSQL paslaugos paleidimas ir automatinio paleidimo įjungimas

Paleiskite PostgreSQL paslaugą:

systemctl start postgresql

Nustatykite, kad PostgreSQL būtų automatiškai paleidžiama kartu su sistema:

systemctl enable postgresql

1.7 Diegimo patikrinimas

Patikrinkite įdiegtą PostgreSQL versiją:

psql --version

1.8 PostgreSQL konfigūravimas nuotolinei prieigai

Pagal numatytuosius nustatymus PostgreSQL priima prisijungimus tik iš vietinio serverio. Norėdami leisti nuotolinius prisijungimus, atidarykite PostgreSQL konfigūracijos failą:

vi /etc/postgresql/17/main/postgresql.conf

Raskite eilutę:

listen_addresses = 'localhost'

Pakeiskite ją į:

listen_addresses = '*'

Išsaugokite pakeitimus ir uždarykite redaktorių.

1.9 Autentifikavimo metodų atnaujinimas

Atnaujinkite pg_hba.conf failą, kad būtų leidžiamas nuotolinis autentifikavimas.

Pakeiskite ident autentifikavimo metodą į md5:

sed -i '/^host/s/ident/md5/' /etc/postgresql/17/main/pg_hba.conf

Vietiniams prisijungimams pakeiskite peer autentifikavimo metodą į trust:

sed -i '/^local/s/peer/trust/' /etc/postgresql/17/main/pg_hba.conf

Leiskite nuotolinius prisijungimus iš visų IPv4 adresų:

echo "host all all 0.0.0.0/0 md5" | sudo tee -a /etc/postgresql/17/main/pg_hba.conf

1.10. PostgreSQL paleidimas iš naujo

Kad konfigūracijos pakeitimai įsigaliotų, paleiskite PostgreSQL paslaugą iš naujo:

systemctl restart postgresql

1.11. PostgreSQL prievado atidarymas užkardoje

Jei naudojate UFW užkardą, leiskite TCP srautą per PostgreSQL naudojamą 5432 prievadą:

ufw allow 5432/tcp

Jei naudojate iptables, atidarykite 5432 prievadą šia komanda:

iptables -A INPUT -p tcp --dport 5432 -j ACCEPT

Tada išsaugokite taisykles:

netfilter-persistent save

Jei netfilter-persistent nėra įdiegtas, taisykles galite išsaugoti naudodami:

iptables-save | tee /etc/iptables/rules.v4

2. PostgreSQL 17 naudojimas

2.1 Prisijungimas prie PostgreSQL komandinės eilutės

Prisijunkite prie PostgreSQL kaip postgres naudotojas:

sudo -u postgres psql

2.2 PostgreSQL naudotojo slaptažodžio nustatymas

PostgreSQL aplinkoje nustatykite slaptažodį numatytajam postgres naudotojui:

ALTER USER postgres PASSWORD 'YourPassword';

Vietoje 'YourPassword' nurodykite stiprų slaptažodį.

2.3 Naujos duomenų bazės sukūrimas

Norėdami sukurti naują duomenų bazę, vykdykite:

CREATE DATABASE mydatabase;

2.4 Naujo naudotojo sukūrimas

Sukurkite naują PostgreSQL naudotoją ir nustatykite jam slaptažodį:

CREATE USER myuser WITH ENCRYPTED PASSWORD 'mypassword';

2.5 Teisių suteikimas naujam naudotojui

Suteikite naujam naudotojui visas teises į sukurtą duomenų bazę:

GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser;

2.6 Išėjimas iš PostgreSQL

Norėdami išeiti iš PostgreSQL komandinės eilutės, vykdykite:

\q
Ar gavote atsakymą į savo klausimą?