Úvod

PostgreSQL je výkonný, objektově-relační databáze řízení systému, poskytované podle flexibilní BSD-style licence. PostgreSQL obsahuje mnoho pokročilých funkcí, je velmi rychlý a standardy kompatibilní.

PostgreSQL má vazby pro mnoho programovacích jazyků, jako jsou C, C++, Python, Java, PHP, Ruby… Může být použit k napájení cokoli od jednoduchých webových aplikací až po masivní databáze s miliony záznamů.,

instalace klienta

Pokud se chcete připojit pouze k externímu serveru PostgreSQL, neinstalujte hlavní balíček PostgreSQL, ale místo toho nainstalujte klientský balíček PostgreSQL. K tomu použijte následující příkaz

 sudo apt-get install postgresql-client

pak se připojit k serveru pomocí následujícího příkazu

 psql -h server.domain.org database user

Po vložení hesla, které jste přístup k PostgreSQL s příkazy., Můžete například vložit následující

 SELECT * FROM table WHERE 1;

ukončení spojení s

 \q

Instalace

nainstalovat místně na serveru pomocí příkazového řádku a napište:

 sudo apt-get install postgresql postgresql-contrib

nainstalovat nejnovější verzi k dispozici v Ubuntu vydání a běžně se používá add-ons.

viz „Externí odkazy“ níže pro možnosti získání novějších verzí.,

Instalace PostGIS, procedurální jazyky, klientské rozhraní, atd.

Další balíčky obsahují procedurální jazyk runtime, add-ons, jako jsou PostGIS, jazyk klientské rozhraní, jako psycopg2 pro Python, atd. Můžete získat výpis s:

 apt-cache search postgres

Administrace

pgAdmin III je šikovný grafické rozhraní pro PostgreSQL, je nezbytné pro začátečníky. Chcete-li jej nainstalovat, zadejte na příkazovém řádku:

 sudo apt-get install pgadmin3

můžete také použít Synaptic package manager ze Systému>Administrace menu k instalaci těchto balíčků.,

Základní Nastavení Serveru

Chcete-li začít, musíme nastavit heslo PostgreSQL uživatele (role) s názvem „postgres“; nebudeme mít přístup na server, navenek jinak. Jako místní uživatel Linuxu“ postgres “ máme povoleno připojit a manipulovat se serverem pomocí příkazu psql.

V terminálu, zadejte:

sudo -u postgres psql postgres

to se připojí jako roli s stejný název jako místní uživatel, tj. „postgres“, aby se databáze s názvem „postgres“ (1. argument psql).,

Nastavte heslo pro roli databáze“ postgres“pomocí příkazu:

\password postgres

a po výzvě zadejte heslo. Text hesla bude skrytý z konzoly pro bezpečnostní účely.

zadejte Control + D nebo \ q pro ukončení výzvy posgreSQL.

Vytvoření databáze

K vytvoření první databáze, kterou nazýváme „mydb“, jednoduše zadejte:

 sudo -u postgres createdb mydb

Instalace Serveru Instrumentation (PgAdmin) pro Postgresql 8.4 nebo 9.3

PgAdmin vyžaduje instalaci add-on pro plnou funkčnost., „Adminpack“ addon, který volá Server Přístrojové vybavení, je součástí postgresql-contrib, tak musíte nainstalovat tento balíček, pokud jste tak již neučinili:

 sudo apt-get install postgresql-contrib

Pak aktivujte rozšíření, pro „“Postgresql 8.4″“, spusťte adminpack.sql skript, jednoduše zadejte:

 sudo -u postgres psql < /usr/share/postgresql/8.4/contrib/adminpack.sql

Pro „Postgresql 9.3″+ nainstalovat adminpack „přípona“ v „postgres“ databáze:

 sudo -u postgres psql CREATE EXTENSION adminpack;

Alternativní Nastavení Serveru

Pokud nemáte v úmyslu se připojit k databázi z jiných strojů, tento alternativní nastavení může být jednodušší.,

ve výchozím nastavení v Ubuntu, Postgresql je nakonfigurován pro použití ‚ident sameuser‘ ověření pro všechna připojení ze stejného počítače. Podívejte se na vynikající Postgresql dokumentaci pro více informací, ale v podstatě to znamená, že pokud vaše Ubuntu uživatelské jméno je “ foo „a přidáte“ foo “ jako Postgresql uživatele, pak se můžete připojit k databázi bez nutnosti hesla.,

Jelikož jediným uživatelem, který může připojit k čerstvé instalaci je uživatel postgres, tady je, jak vytvořit si databázi účtu (což je v tomto případě také databáze superuser) s stejný název jako vaše přihlašovací jméno a pak vytvořit heslo pro uživatele:

 sudo -u postgres createuser --superuser $USER sudo -u postgres psql
 postgres=# \password $USER

Klientské programy, ve výchozím nastavení, připojení k místní hostitele pomocí Ubuntu přihlašovací jméno a očekávat, že databáze s tímto názvem., Takže aby to bylo OPRAVDU snadné, používat nové superuser oprávnění udělená výše vytvořit databázi se stejným názvem jako vaše přihlašovací jméno:

 sudo -u postgres createdb $USER

Připojení k vaší vlastní databáze, aby vyzkoušet některé SQL by měl být nyní stejně snadné jako:

 psql

Vytvoření další databáze, je stejně snadné, takže například, po spuštění toto:

 create database amarokdb;

můžete jít do toho a říct, Amarok používat postgresql pro ukládání své hudební katalog., Název databáze by amarokdb, uživatelské jméno, bude váš vlastní přihlašovací jméno, a nemusíte ani potřebovat heslo, díky ‚ident sameuser‘, takže si můžete nechat prázdné.

použití pgAdmin III GUI

Chcete-li získat představu o tom, co PostgreSQL může udělat, můžete začít spuštěním grafického klienta. V typu terminálu:

 pgadmin3

vám bude představeno rozhraní pgAdmin III. Klikněte na tlačítko“ Přidat připojení k serveru “ (vlevo nahoře). V novém dialogu zadejte adresu 127.0.0.1 (místní hostitel je výchozí, takže jej lze vynechat.,), popis serveru, výchozí databáze („mydb“ v příkladu výše), vaše uživatelské jméno („postgres“) a vaše heslo. Je zapotřebí ještě jeden krok, aby se pgAdmin III mohl připojit k serveru, a to je úprava pg_hba.conf a změnit metodu ověřování z peer-to-md5 (nebude fungovat, pokud jste nenastavili heslo):

sudo nano /etc/postgresql/9.3/main/pg_hba.conf

a změňte řádek

# Database administrative login by Unix domain socketlocal all postgres peer

# Database administrative login by Unix domain socketlocal all postgres md5

Nyní byste měli jiný server, změny konfigurace a připojení pgAdmin III pro váš databázový server PostgreSQL.,

sudo /etc/init.d/postgresql reload

pomocí tohoto GUI můžete začít vytvářet a spravovat databáze, dotazovat databázi, spouštět SQl atd.

Správa Serveru

další informace o správě PostgreSQL (ale bez Ubuntu specifika), viz oficiální dokumentace PostgreSQL

Správa uživatelů a práv

správa Uživatelů jsou podrobně popsány v ověřování klienta kapitole PostgreSQL dokumentace; následující je úvod, jak začít.

Chcete-li spravovat uživatele, musíte nejprve upravit /etc/postgresql/current/main/pg_hba.,conf a upravit výchozí konfiguraci, která je velmi uzamčen a bezpečný. Například, pokud chcete, postgres, aby spravovat své vlastní uživatele (není spojen s uživateli soustavy), přidáte následující řádek:

8<-------------------------------------------# TYPE DATABASE USER IP-ADDRESS IP-MASK METHODhost all all 10.0.0.0 255.255.255.0 md58<-------------------------------------------

Což znamená, že na místní síti (10.0.0.0/24 – nahradit své vlastní místní sítě !), uživatelé postgres se mohou připojit přes síť k databázi poskytující klasický pár uživatel / heslo.

kromě toho, že umožňuje uživateli připojit se přes síť k databázi na serveru, musíte povolit PostgreSQL poslouchat v různých sítích., Chcete-li to provést, otevřete /etc/postgresql/current/main/postgresql.conf ve svém oblíbeném editoru a změnit listen_addresses jak je uvedeno níže:

listen_addresses = '*'

poslouchat na všech síťových rozhraní. Další možnosti naleznete v dokumentech listen_addresses.

Chcete-li vytvořit databázi s uživateli, které mají plná práva na databáze, použijte následující příkaz:

sudo -u postgres createuser -D -A -P myusersudo -u postgres createdb -O myuser mydb

první řádek příkaz vytvoří uživatele s žádná databáze, vytváření práva (-D) s ne přidat uživatelská práva -) a vyzve vás k zadání hesla (-P)., Druhý příkazový řádek Vytvořit databázi ‚mydb s‘ myuser ‚ jako vlastník.

tento malý příklad bude pravděpodobně vyhovovat většině vašich potřeb. Další podrobnosti naleznete na příslušných manuálních stránkách nebo v online dokumentaci.

restartování serveru

po konfiguraci sítě / uživatelů budete možná muset server znovu načíst, zde je doporučený příkaz k tomu.

sudo /etc/init.d/postgresql reload

některá nastavení se mění v postgresql.,conf vyžadují úplný restart, který bude ukončit aktivní připojení a přerušit nesvěřené transakce:

sudo /etc/init.d/postgresql restart

Další čtení

Pokud nejste obeznámeni s SQL možná budete chtít podívat do toho silný jazyk, i když některé jednoduché použití PostgreSQL nemusí vyžadovat tyto znalosti (například jednoduchý Django projektu).

Web PostgreSQL obsahuje velké množství informací o používání této databáze. Tutoriál je zejména užitečným výchozím bodem, ale krok instalace můžete přeskočit, protože jste jej již nainstalovali pomocí balíčků Ubuntu.,

řešení problémů

fe_sendauth: není zadáno heslo

vaše pg_hba.conf specifikuje, že md5 autentizace má být použita pro toto připojení na základě hostitele původu, způsobu připojení a požadovaného uživatelského jména / databáze, ale vaše aplikace neposkytla heslo.

Změnit režim ověřování nebo nastavit heslo pro uživatele se připojujete, a poté zadejte heslo v aplikaci nastavení připojení.,

FATAL: role „myusername“ neexistuje

ve výchozím nastavení se PostgreSQL připojuje k uživateli PostgreSQL se stejným názvem jako aktuální uživatel Unixu. V databázi jste nevytvořili uživatele PostgreSQL tímto jménem.

Vytvořte vhodného uživatele nebo zadejte jiné uživatelské jméno, se kterým se chcete spojit. V nástrojích příkazového řádku to dělá příznak-U.

FATAL: databáze „myusername“neexistuje

uživatel s názvem „myusername“ existuje, ale neexistuje žádná databáze se stejným názvem.,

ve výchozím nastavení se PostgreSQL připojuje k databázi se stejným názvem jako uživatel, který připojujete jako, ale automaticky nevytváří databázi, pokud neexistuje.

vytvořte databázi nebo zadejte jinou databázi, ke které se chcete připojit.

FATAL: Peer authentication failed for user „myusername“

připojujete se k localhost přes unixovou zásuvku. Uživatel s názvem „myusername“ existuje, ale váš současný uživatel unix není stejný jako toto uživatelské jméno., PostgreSQL je nastaven na použití“ peer “ ověřování na Unix sockets pro tento uživatel / db combo, takže to vyžaduje Unix a postgresql uživatelská jména, aby odpovídaly.

Připojte se od uživatele Unixu, který odpovídá požadovanému uživateli PostgreSQL-možná s sudo-u theusername psql – nebo změňte pg_hba.conf použít jiný režim ověřování, jako je “ md5 “ pro toto uživatelské jméno.,

nelze se připojit k serveru: Žádný takový soubor nebo adresář

chybu, jako je tento (případně jiný unix socket, v závislosti na vaší instalaci):

 psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

může znamenat řadu věcí:

* server není spuštěn;

* server má jiný unix_socket_directories do prodlení klienta je libpq, a to buď v důsledku různých sestavil-v výchozí nastavení, nebo nesprávné nastavení;

* server naslouchá na jiné „přístav“., PostgreSQL emuluje porty TCP / IP na soketech unix pomocí čísla portu jako přípony pro soubor socket, např. 5432.

odstranit tyto zase.

nejprve se ujistěte, že server běží. Na Ubuntu vám ps-u postgres-f ukáže všechny procesy běžící jako uživatelské postgres – chcete vidět více procesů s názvem postgres.

nyní se ujistěte, že server poslouchá, kde si klient myslí, že je. Chcete-li zjistit adresář socket serveru PostgreSQL:

 sudo -u postgres psql -c "SHOW unix_socket_directories;"

nebo u starších verzí PostgreSQL, unix_socket_directory jako parametr změnil název., Ukázat portu tohoto serveru (což platí pro obě TCP/IP a unix sockets):

 sudo -u postgres psql -c "SHOW port;"

Pokud se nemůžete připojit i s psql pod unix uživatelem postgres můžete zkontrolovat zásuvky dir s lsof:

 $ sudo lsof -U -a -c postgres COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME postgres 6565 postgres 5u unix 0xffff88005a049f80 0t0 183009 /tmp/.s.PGSQL.5432 postgres 6566 postgres 1u unix 0xffff88013bc22d80 0t0 183695 socket postgres 6566 postgres 2u unix 0xffff88013bc22d80 0t0 183695 socket

V tomto případě první řádek je zásuvka umístění. Tento server má socket directory / tmp s portem 5432.,

Pokud je váš klient hledá v různých socket directory, asi se snažíš připojit přes unixové sockety na výchozí socket a/nebo výchozí port, a libpq váš klient aplikace je spojena s má jiný sestavil-v unix socket a/nebo port, než tvůj běh PostgreSQL. S největší pravděpodobností vaše LD_LIBRARY_PATH nebo /etc/ld.tak.conf má jiný libpq, než ten, který byl dodán s vaší verzí PostgreSQL. To obecně nezáleží moc, stačí přepsat adresář socket.,

určete alternativní socket directory a/port port pro připojení, zadejte zásuvky dir jako hostitel parametr ve své možnosti připojení, např. pro připojení jako uživatel bob na server poslech v /tmp na portu 5433:

 psql -h /tmp -p 5433 -U bob ...

nebo v připojení řetězec tvoří:

 psql "host=/tmp port=5433 user=bob ..."

totéž funguje s jakýmkoli klientem, který používá libpq (všechny PostgreSQL klientské nástroje, plus např. psycopg2, Pg gem v Ruby/Rails, PHP postgres a OP, Perl je DBB::Pg, atd.)., To nefunguje s non-libpq klienty, jako je PgJDBC, py-postgresql, atd., ale většina z nich nepodporují unixové zásuvky vůbec. Podívejte se na dokumentaci klienta pro klienty, kteří nejsou založeni na libpq.

Oficiální PostgreSQL ke stažení

Projekt PostgreSQL poskytuje na své stránce Ke stažení oficiální seznam míst stahování, včetně úložiště softwaru Ubuntu. Zejména, Ubuntu uživatelé mohou získat novější PostgreSQL verze než ty balené v jejich vydání Ubuntu pomocí apt-get přes apt.postgresql.org.

Pro podporu a služby kolem PostgreSQL vidět, služby a podporu stránku.,

EnterpriseDB

stránka PostgreSQL Linux downloads obsahuje sekci „Graphical installer“ postavenou společností EnterpriseDB. Stáhnete instalační program a změníte jeho vlastnosti tak, aby bylo možné jej spustit jako příkaz (má .spusťte rozšíření) a spusťte jej z příkazového řádku jako v “ sudo whateveritwas.spustit“.

skončíte s

  • nakonfigurovanou instancí serveru DB, která začíná aplikací klienta serveru
  • pgAdmin III UI

všimněte si, že nainstalovaný software nebude integrován do Ubuntu software center., V důsledku toho nebudete od Ubuntu dostávat žádné aktualizace zabezpečení. Nainstalovaná verze však bude úzce odpovídat nejnovější verzi Ubuntu.

na klíč Linux

zařízení PostgreSQL založené na Ubuntu je jedním z nejjednodušších způsobů, jak se dostat do provozu s PostgreSQL na Ubuntu. Je součástí rodiny předintegrovaných softwarových zařízení Linux na klíč založených na Ubuntu 10.04.1 (Lucid LTS).