Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Následující verze | Předchozí verze | ||
postgresql [2012/07/27 13:20] – vytvořeno ubuntu | postgresql [2019/02/25 18:21] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
+ | ====== PostgreSQL ====== | ||
+ | PostgreSQL je plnohodnotným relačním databázovým systémem s otevřeným zdrojovým kódem. Má za sebou více než patnáct let aktivního vývoje a má vynikající pověst pro svou spolehlivost a bezpečnost. Běží na všech rozšířených operačních systémech včetně Linuxu, UNIXů (AIX, BSD, HP-UX, SGI-IRIX, Mac OS X, Solaris, Tru64) a Windows. | ||
+ | |||
+ | PostgreSQL je šířen pod BSD licencí, která je nejliberálnější ze všech open source licencí. Tato licence umožňuje neomezené používání, | ||
+ | |||
+ | ====== Instalace ====== | ||
+ | Následujícím příkazem nainstalujeme všechny balíky potřebné k běhu databázového serveru PostgreSQL: | ||
+ | < | ||
+ | sudo apt-get install postgresql postgresql-contrib | ||
+ | </ | ||
+ | < | ||
+ | sudo apt-get install php5-pgsql libapache2-mod-auth-pgsql | ||
+ | </ | ||
+ | Instalace je skutečně takto jednoduchá, | ||
+ | |||
+ | Pokud bychom nechtěli instalovat z balíčků, můžeme si aplikaci stáhnout zde: [[http:// | ||
+ | ===== Chyba při instalaci ===== | ||
+ | Pokud instalace skončí chybou kde je v hlášce uvedeno: | ||
+ | < | ||
+ | unsafe permissions on private key file " | ||
+ | </ | ||
+ | < | ||
+ | /etc/ssl$ sudo make-ssl-cert generate-default-snakeoil --force-overwrite | ||
+ | </ | ||
+ | |||
+ | |||
+ | ====== Konfigurace ====== | ||
+ | ===== Základní konfigurace ===== | ||
+ | Při instalaci nám vznikl v systému nový uživatel s názvem postgres. Tento uživatel je nastaven jako defaultní uživatel databáze PostrgeSQL, čili první přihlášení provedeme přes něj. Abychom se ale mohli přihlásit, | ||
+ | < | ||
+ | sudo passwd postgres # | ||
+ | sudo service postgresql restart # | ||
+ | </ | ||
+ | ===== První přihlášení ===== | ||
+ | Pro první přihlášení použijeme následující příkaz: | ||
+ | < | ||
+ | su postgres # | ||
+ | </ | ||
+ | < | ||
+ | $ sudo adduser uzivatelske_jmeno_noveho_uzivatele # | ||
+ | $ createuser uzivatelske_jmeno | ||
+ | $ createdb uzivatelske_jmeno | ||
+ | </ | ||
+ | Po zadání příkazu createuser budeme muset odpovědět na otázku: | ||
+ | |||
+ | * Chcete, aby uživatel byl superuživatel? | ||
+ | |||
+ | Jelikož vytváříme svůj účet, tak samozřejmě odpovíme ' | ||
+ | ===== Samotná konfigurace ===== | ||
+ | V tuto chvíli databázový server sice běhá, ale každý si může vytvořit tabulku v libovolné databázi. To je způsobeno tím, že při vytváření tabulky defaultně vznikne schéma public, do kterého mohou zapisovat všichni uživatelé. To určitě není dobré, a proto to zakážeme. Můžeme to udělat třeba tak, že smažeme schéma public a nahradíme ho vlastním, ale to není úplně ono, a proto to zkusíme přes konfigurační soubor pg_hba.conf: | ||
+ | < | ||
+ | sudo gedit / | ||
+ | </ | ||
+ | < | ||
+ | # Database administrative login by UNIX sockets | ||
+ | local | ||
+ | |||
+ | # TYPE DATABASE | ||
+ | |||
+ | # " | ||
+ | local | ||
+ | # IPv4 local connections: | ||
+ | host all | ||
+ | # IPv6 local connections: | ||
+ | host all | ||
+ | </ | ||
+ | < | ||
+ | # Database administrative login by UNIX sockets | ||
+ | local | ||
+ | |||
+ | # TYPE DATABASE | ||
+ | |||
+ | # " | ||
+ | local | ||
+ | # IPv4 local connections: | ||
+ | host all | ||
+ | # IPv6 local connections: | ||
+ | host all | ||
+ | </ | ||
+ | |||
+ | Teď už jenom restartujeme server: | ||
+ | < | ||
+ | sudo service postgresql restart | ||
+ | </ | ||
+ | ===== Psql ===== | ||
+ | Základní řádkový klient k databázovému serveru PostgreSQL je nainstalován přímo jako závislost (postgres-client) balíku postgres (přesněji jako závislost balíku postgres-8.3, | ||
+ | |||
+ | Základní příkazy: | ||
+ | < | ||
+ | jmeno_databaze=# | ||
+ | jmeno_databaze=# | ||
+ | jmeno_databaze=# | ||
+ | jmeno_databaze=# | ||
+ | jmeno_databaze=# | ||
+ | jmeno_databaze=# | ||
+ | jmeno_databaze=# | ||
+ | jmeno_databaze=# | ||
+ | </ | ||
+ | |||
+ | ==== Základní komunikace s databází ==== | ||
+ | Po nainstalování klienta můžeme konečně začít plně využívat naši databázi. Začneme tak, že se přihlásíme do své databáze. | ||
+ | < | ||
+ | psql | ||
+ | </ | ||
+ | < | ||
+ | psql jmeno_databaze | ||
+ | </ | ||
+ | < | ||
+ | jmeno_databaze=# | ||
+ | </ | ||
+ | < | ||
+ | jmeno_databaze=# | ||
+ | </ | ||
+ | ===== PhpPgAdmin ===== | ||
+ | Tato aplikace slouží ke grafické administraci databáze PostgreSQL přes webové rozhraní. Instalace probíhá následovně(předpokládá se, že je nainstalováno PHP a Apache): | ||
+ | < | ||
+ | sudo apt-get install phppgadmin | ||
+ | sudo ln -s / | ||
+ | </ | ||
+ | Pokud nám je při spuštění hlášena nějaká chyba, zkusíme toto: | ||
+ | < | ||
+ | sudo gedit / | ||
+ | </ | ||
+ | < | ||
+ | $conf[' | ||
+ | </ | ||
+ | < | ||
+ | $conf[' | ||
+ | </ | ||
+ | < | ||
+ | sudo service apache2 reload | ||
+ | </ | ||
+ | < | ||
+ | sudo gedit / | ||
+ | </ | ||
+ | < | ||
+ | $PHP_SELF = htmlspecialchars($_SERVER[' | ||
+ | </ | ||
+ | < | ||
+ | $PHP_SELF = htmlspecialchars($_SERVER[' | ||
+ | </ | ||
+ | < | ||
+ | sudo ln -s / | ||
+ | </ | ||
+ | Přidělení práv danému uživateli: | ||
+ | < | ||
+ | jmeno_databaze=# | ||
+ | </ | ||
+ | < | ||
+ | jmeno_databaze=# | ||
+ | </ | ||
+ | < | ||
+ | jmeno_databaze=# | ||
+ | </ | ||
+ | < | ||
+ | ALTER DATABASE jmeno_databaze OWNER TO uzivatel; | ||
+ | </ | ||
+ | ====== Klady, zápory a zajímavosti ====== | ||
+ | Klady: | ||
+ | * Stabilita | ||
+ | * Rychlost | ||
+ | * " | ||
+ | * Dostupnost - Podporuje jí hodně hostingů. | ||
+ | * Nenašel jsem žádné zápory - Databázi mám sice poměrně krátce, ale ani na internetu jsem nenašel žádné nespokojené uživatele. | ||
+ | |||
+ | Zajímavosti: | ||
+ | |||
+ | * Datový typ **Serial** (inkrementace) - Jedná se vlastně o datový typ // | ||
+ | * **Limit** a **Offset** (limit výstupů) - Jedná se o omezení výstupních dat, které není standardem pro každou databázi (Třeba Oracle nic podobného nemá). | ||
+ | * **Schémata** - Další příjemná věc, která nám umožňuje mít v tabulkách ještě větší přehled. Tabulky můžeme rozdělit do různých skupin (Schémat) a tím pádem nemusí být hned důvod zakládat pro další projekt jinou databázi. | ||
+ | |||
+ | ====== Odkazy ====== | ||
+ | * [[http:// | ||
+ | * Autor návodu: [[http:// | ||
+ | |||
+ | {{page> |