PostgreSQL (často zkráceně Postgres) je objektově-relační systém pro správu databází (ORDBMS), který klade důraz na rozšiřitelnost a shodu se standardy.
Má více než 30 let aktivního vývoje a osvědčenou architekturu, která mu vynesla silnou reputaci pro spolehlivost, integritu dat a výkon.
PostgreSQL je vydán pod licencí PostgreSQL a je dostupný pro Linux, Microsoft Windows, FreeBSD, OpenBSD a macOS.
V tomto příspěvku uvidíme, jak nainstalovat PostgreSQL na Debian 11 / Debian 10.
Přidat úložiště PostgreSQL
PostgreSQL publikuje balíčky pro operační systém Debian prostřednictvím jejich vyhrazeného úložiště a balíčky v jejich úložišti jsou čerstvější než balíčky dostupné v úložišti OS.
Nejprve aktualizujte index úložiště pomocí apt
příkaz
sudo apt update
Poté nainstalujte podporu HTTPS pro apt, abyste získali balíčky z internetu.
sudo apt install -y curl apt-transport-https
Nyní importujte podpisový klíč PostgreSQL.
# Debian 11 curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /usr/share/keyrings/postgresql-keyring.gpg # Debian 10 curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
Nakonec přidejte informace o úložišti PostgreSQL do systému pomocí příkazu níže.
# Debian 11 echo "deb [signed-by=/usr/share/keyrings/postgresql-keyring.gpg] http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list # Debian 10 echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list
Nainstalujte PostgreSQL na Debian
Jakmile přidáte úložiště PostgreSQL, spusťte následující příkaz pro aktualizaci indexu úložiště.
sudo apt update
Poté nainstalujte PostgreSQL pomocí níže uvedeného příkazu na základě verze PostgreSQL, kterou chcete nainstalovat.
# PostgreSQL 13 sudo apt install -y postgresql-13 # PostgreSQL 12 sudo apt install -y postgresql-12
Nyní bude služba PostgreSQL spuštěna a spuštěna. Stav služby můžete zkontrolovat pomocí příkazu níže.
sudo systemctl status postgresql
Výstup:
● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Wed 2021-09-15 14:19:30 CDT; 42s ago Main PID: 3759 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 2343) Memory: 0B CGroup: /system.slice/postgresql.service Sep 15 14:19:30 debian.itzgeek.local systemd[1]: Starting PostgreSQL RDBMS... Sep 15 14:19:30 debian.itzgeek.local systemd[1]: Started PostgreSQL RDBMS.
Konfigurace serveru PostgreSQL
Ve výchozím nastavení PostgreSQL naslouchá na localhost (127.0.0.1), což nemusíte vždy chtít, protože externí aplikace se mohou potřebovat připojit k databázi. Nakonfigurujeme tedy PostgreSQL, aby naslouchal systémové IP adrese.
# PostgreSQL 13 sudo nano /etc/postgresql/13/main/postgresql.conf # PostgreSQL 12 sudo nano /etc/postgresql/12/main/postgresql.conf
Nastavte listen_addresses
na *
nebo <IPAddress>
.
listen_addresses = '192.168.0.10'
Restartujte službu PostgreSQL.
sudo systemctl restart postgresql
Nyní můžete použít netstat
příkaz k potvrzení, zda PostgreSQL naslouchá na portu 5432 nebo ne.
sudo netstat -antup | grep 5432
Výstup:
tcp 0 0 192.168.0.10:5432 0.0.0.0:* LISTEN 5265/postgres
ČTĚTE :Příkaz netstat nebyl v Debianu nalezen – Rychlá oprava
Přístup k PostgreSQL
Pro správu databáze PostgreSQL se budete muset přihlásit jako postgres
(uživatel Linuxu) a poté musíte přistupovat k prostředí databáze pomocí psql
příkaz.
sudo -u postgres psql
Výstup:
postgres@server:~$ psql psql (13.4 (Debian 13.4-1.pgdg100+1)) Type "help" for help. postgres=#
Na psql
shell, spusťte níže uvedený příkaz pro změnu postgres
uživatel (heslo správce databáze.
postgres=# \password
NEBO
postgres=# \password postgres
Vytvoření databáze PostgreSQL a uživatele
Nejprve vytvořte uživatele databáze pomocí níže uvedeného příkazu.
CREATE USER mydb_user WITH ENCRYPTED PASSWORD 'password';
Dále vytvořte databázi pomocí níže uvedeného příkazu.
CREATE DATABASE mydb WITH OWNER mydb_user;
Poté můžete udělit oprávnění uživateli mydb_user
v nově vytvořené databázi.
GRANT ALL PRIVILEGES ON DATABASE mydb TO mydb_user;
Nyní zkontrolujte, zda byl uživatel vytvořen nebo ne.
postgres=# \du
Výstup:
postgres=# \du List of roles Role name | Attributes | Member of -----------+------------------------------------------------------------+----------- mydb_user | | {} postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {} postgres=#
Můžete také vypsat seznam databází a zjistit, zda vaše databáze mydb
byl vytvořen.
postgres=# \l
Výstup:
postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+-----------+----------+-------------+-------------+------------------------- mydb | mydb_user | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/mydb_user + | | | | | mydb_user=CTc/mydb_user postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows) postgres=#
Nakonec se přihlaste do mydb
s uživatelem databáze mydb_user
.
psql -h localhost -d mydb -U mydb_user
Výstup:
Password for user mydb_user: psql (13.4 (Debian 13.4-1.pgdg110+1)) SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off) Type "help" for help. mydb=>
Závěr
To je vše. Doufám, že jste se naučili, jak nainstalovat PostgreSQL na Debian 11 / Debian 10.