PostgreSQL (aka Postgres) je objektově-relační systém pro správu databází (ORDBMS), dostupný pro Linux, Microsoft Windows, FreeBSD, OpenBSD, Solaris a Mac OS.
PostgreSQL je vydán pod licencí PostgreSQL, svobodnou a open source licencí na software, vyvinutou PGDG (PostgreSQL Global Development Group), skupinou jednotlivých dobrovolníků a korporátních společností.
Zde si projdeme kroky, jak nainstalovat PostgreSQL 11 / 10 na Ubuntu 18.04 / Ubuntu 16.04 &Linux Mint 19 / Linux Mint 18.
Přidat úložiště PostgreSQL
PostgreSQL publikuje deb balíčky pro Ubuntu a jejich balíčky jsou čerstvější než ty dostupné v základním úložišti OS.
Importujte podpisový klíč PostgreSQL.
wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O- | sudo apt-key add -
Přidejte úložiště PostgreSQL do /etc/apt/sources.list.d/postgresql.list soubor.
### Ubuntu 18.04 / LinuxMint 19 ### echo "deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list ### Ubuntu 16.04 / LinuxMint 18 ### echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list
Nainstalujte PostgreSQL
Provedením níže uvedeného příkazu aktualizujte index úložiště.
sudo apt-get update
Nainstalujte balíček PostgreSQL pomocí příkazu apt.
### PostgreSQL 11 ### sudo apt-get install -y postgresql-11 ### PostgreSQL 10 ### sudo apt-get install -y postgresql-10
Ovládejte službu PostgreSQL
Chcete-li spustit službu PostgreSQL, spusťte:
sudo systemctl start postgresql
Chcete-li zastavit službu PostgreSQL, spusťte:
sudo systemctl stop postgresql
Chcete-li restartovat službu PostgreSQL, spusťte:
sudo systemctl restart postgresql
Chcete-li zkontrolovat stav běhu služby PostgreSQL, spusťte:
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 Sat 2019-02-23 11:30:32 IST; 3min 5s ago Main PID: 5285 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 2323) CGroup: /system.slice/postgresql.service Feb 23 11:30:32 desktop systemd[1]: Starting PostgreSQL RDBMS... Feb 23 11:30:32 desktop systemd[1]: Started PostgreSQL RDBMS.
Konfigurace serveru PostgreSQL
PostgreSQL naslouchá pouze na adaptéru zpětné smyčky (127.0.0.1) . Někdy se může stát, že aplikace hostovaná na externím serveru se bude muset připojit k databázi. K tomu potřebujeme nakonfigurovat PostgreSQL tak, aby naslouchal na všech adaptérech.
### PostgreSQL 11 ### sudo nano /etc/postgresql/11/main/postgresql.conf ### PostgreSQL 10 ### sudo nano /etc/postgresql/10/main/postgresql.conf
Nastavte listen_addresses
na *
nebo <IPAddress>
.
listen_addresses = '*'
Restartujte službu PostgreSQL.
sudo systemctl restart postgresql
Potvrďte naslouchání PostgreSQL na portu 5432 pomocí příkazu netstat.
sudo netstat -antup | grep 5432
Výstup:
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 6518/postgres tcp6 0 0 :::5432 :::* LISTEN 6518/postgres
ČTĚTE :Příkaz netstat nebyl v Ubuntu nalezen – rychlá oprava
Přístup k PostgreSQL
Pro správu databáze se musíte přihlásit jako uživatel postgres.
sudo su -l postgres
Použijte psql, interaktivní shell pro práci s databází PostgreSQL .
psql
Výstup:
postgres@server:~$ psql psql (11.2 (Ubuntu 11.2-1.pgdg18.04+1)) Type "help" for help. postgres=#
Bezpečná databáze PostgreSQL
Nyní nastavíme heslo pro uživatele Linuxu (postgres) stejně jako administrátor DB (postgres) .
Nastavit heslo pro uživatele systému Linux (postgres)
sudo passwd postgres
Výstup:
raj@server:~$ sudo passwd postgres Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
Nastavit heslo pro správce DB (postgres)
su - postgres psql
V prostředí psql , spusťte níže příkaz pro změnu hesla správce databáze.
postgres=# \password
NEBO
postgres=# \password postgres
Výstup:
postgres=# \password postgres Enter new password: Enter it again:
Příkazy PostgreSQL DB
Syntaxe pro vytvoření databáze je:
$ su - postgres $ createdb test
Přihlaste se do DB.
$ psql test
Syntaxe pro vytvoření uživatele je:
test=# CREATE USER raj WITH SUPERUSER LOGIN PASSWORD 'password';
Zkontrolujte, zda byl uživatel vytvořen nebo ne.
test=# \du
Výstup:
test=# \du List of roles Role name | Attributes | Member of -----------+------------------------------------------------------------+----------- postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {} raj | Superuser | {}
Přihlaste se pomocí uživatele „raj“.
psql -h localhost -d test -U raj
Výstup:
psql (11.2 (Ubuntu 11.2-1.pgdg18.04+1)) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) Type "help" for help. test=#
Syntaxe pro výpis databází:
test=# \l
Výstup:
test=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- 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 test | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | (4 rows)
To je vše. Úspěšně jste nainstalovali PostgreSQL 11/10 na Ubuntu 18.04 / Ubuntu 16.04 &Linux Mint 19 / Linux Mint 18.