Introducere

PostgreSQL este un sistem puternic de gestionare a bazelor de date relaționale obiect, furnizat sub o licență flexibilă în stil BSD. PostgreSQL conține multe funcții avansate, este foarte rapid și respectă standardele. PostgreSQL are legături pentru multe limbaje de programare, cum ar fi C, C++, Python, Java, PHP, Ruby… Poate fi folosit pentru a alimenta orice, de la aplicații web simple la baze de date masive cu milioane de înregistrări.,

Instalare Client

Dacă doriți doar să vă conectați la un server PostgreSQL extern, nu instalați pachetul principal PostgreSQL, ci instalați pachetul client PostgreSQL. Pentru a face acest lucru, utilizați următoarea comandă

 sudo apt-get install postgresql-client

apoi se conecteze la serverul cu comanda următoare

 psql -h server.domain.org database user

După ce ați introdus parola de acces PostgreSQL cu linie de comandă., Ai putea, de exemplu, se introduce următorul text

 SELECT * FROM table WHERE 1;

ieșire în legătură cu

 \q

Instalare

Pentru a instala serverul local să utilizați linia de comandă și tastați:

 sudo apt-get install postgresql postgresql-contrib

Acesta va instala cea mai recentă versiune disponibilă în versiune de Ubuntu și frecvent utilizate suplimente pentru ea.

A se vedea” link-uri externe ” de mai jos pentru opțiuni pentru a obține versiuni mai noi.,

instalarea PostGIS, limbaje procedurale, interfețe client, etc

pachete suplimentare conțin runtime limbaj procedural, add-on-uri, cum ar fi PostGIS, interfețe client limbaj, cum ar fi psycopg2 pentru Python, etc. Puteți obține o listă cu:

 apt-cache search postgres

Administrare

pgAdmin III este o aplicație GUI pentru PostgreSQL, este esențial pentru incepatori. Pentru a instala aceasta, tastați în linia de comandă:

 sudo apt-get install pgadmin3

de asemenea, puteți utiliza managerul de pachete Synaptic din Sistemul>Administrare meniu pentru a instala aceste pachete., pentru a începe, trebuie să setăm parola utilizatorului PostgreSQL (rol) numit „postgres”; nu vom putea accesa serverul extern altfel. Ca utilizator Linux local” postgres”, ni se permite să conectăm și să manipulăm serverul folosind comanda psql.

Într-un terminal, tastați:

sudo -u postgres psql postgres

acest conecteaza ca un rol cu același nume de utilizator local, adică „postgres”, la baza de date numita „postgres” (1 argument pentru a psql).,

setați o parolă pentru rolul bazei de date „postgres” folosind comanda:

\password postgres

și dați parola atunci când vi se solicită. Textul parolei va fi ascuns de consolă din motive de securitate.

tastați Control + D sau \q pentru a ieși din promptul posgreSQL.

Crearea unei baze de date

Pentru a crea prima bază de date, pe care o vom numi „mydb”, pur și simplu tastați:

 sudo -u postgres createdb mydb

Instalare Server de Instrumentație (pentru PgAdmin) pentru Postgresql 8.4 sau 9.3

PgAdmin necesită instalarea unui add-on pentru funcționalitate completă., La „adminpack” addon, care se numește Server de Instrumente, este parte din postgresql-contrib, așa că trebuie să instalați acest pachet dacă nu ați făcut deja:

 sudo apt-get install postgresql-contrib

Apoi, pentru a activa extensia, pentru „”Postgresql 8.4″”, executați adminpack.script sql, pur și simplu tastați:

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

Pentru „Postgresql 9.3″+ instala adminpack „extensie” în „postgres” baza de date:

 sudo -u postgres psql CREATE EXTENSION adminpack;

Alternative de Server de Configurare

Dacă nu intenționează să se conecteze la baza de date de la alte masini, această alternativă de configurare poate fi mai simplu.,

în mod implicit în Ubuntu, Postgresql este configurat să utilizeze autentificarea „ident sameuser” pentru orice conexiuni de la aceeași mașină. Consultați documentația PostgreSQL excelentă pentru mai multe informații, dar, în esență, acest lucru înseamnă că, dacă numele dvs. de utilizator Ubuntu este ” foo „și adăugați” foo ” ca utilizator Postgresql, atunci vă puteți conecta la baza de date fără a necesita o parolă.,

Din moment ce singurul utilizator care se poate conecta la o instalare proaspătă este postgres utilizator, aici este cum să vă creați o bază de date de cont (care este, în acest caz, de asemenea, o bază de date superuser) cu același nume ca și numele de conectare și apoi să creați o parolă pentru utilizator:

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

programe Client, implicit, conecta la gazdă locale folosind Ubuntu numele de conectare și se așteaptă să găsească o bază de date cu numele asta prea., Deci, pentru a face lucrurile ușor, utilizați noul superuser privilegiile acordate de mai sus pentru a crea o bază de date cu același nume ca și numele de conectare:

 sudo -u postgres createdb $USER

Conectarea la baza de date proprie pentru a încerca unele SQL ar trebui să fie acum la fel de ușor ca:

 psql

Crearea de baza de date suplimentare este la fel de ușor, așa de exemplu, după care rulează acest lucru:

 create database amarokdb;

puteți merge chiar mai departe și spune Amarok a utiliza postgresql pentru a stoca muzica catalog., Numele bazei de date ar fi amarokdb, numele de utilizator va fi propriul dvs. nume de utilizator, și nici nu ai nevoie de o parola datorită ‘ident sameuser’ astfel încât să puteți lăsa gol.

folosind pgAdmin III GUI

pentru a vă face o idee despre ce poate face PostgreSQL, puteți începe prin lansarea unui client grafic. Într-un tip de terminal :

 pgadmin3

vi se va prezenta interfața PGADMIN III. Faceți clic pe butonul” Adăugați o conexiune la un server ” (stânga sus). În noul dialog, Introduceți adresa 127.0.0.1 (gazda locală este implicită, deci poate fi lăsată afară.,), o descriere a serverului, baza de date implicită („mydb”în exemplul de mai sus), numele dvs. de utilizator („postgres”) și parola. Încă un pas este necesar pentru a permite pgAdmin III să se conecteze la server și anume să editeze pg_hba.conf fișier și de a schimba metoda de autentificare de la egal la md5 (nu va funcționa dacă nu ați setat o parolă):

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

și modifica linia

# Database administrative login by Unix domain socketlocal all postgres peer

# Database administrative login by Unix domain socketlocal all postgres md5

Acum ar trebui să reîncărcați server modificări de configurare și conectați pgAdmin III la PostgreSQL server de baze de date.,

sudo /etc/init.d/postgresql reload

cu acest GUI puteți începe crearea și gestionarea bazelor de date, interogare baza de date, executa SQl etc.

gestionarea serverului

pentru a afla mai multe despre gestionarea PostgreSQL (dar fără specificul Ubuntu), consultați documentația oficială PostgreSQL

Gestionarea utilizatorilor și a drepturilor

managementul utilizatorilor este discutat în detaliu în capitolul autentificare client al documentației PostgreSQL; următoarea este o introducere pentru a vă începe. pentru a gestiona utilizatorii, trebuie mai întâi să editați /etc/postgresql/current/main/pg_hba.,conf și modifica configurația implicită, care este foarte blocat în jos și sigur. De exemplu, dacă doriți ca postgres să-și gestioneze propriii utilizatori (care nu sunt legați de utilizatorii sistemului), veți adăuga următoarea linie:

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

ceea ce înseamnă că în rețeaua locală (10.0.0.0/24 – înlocuiți cu propria rețea locală !), utilizatorii postgres se pot conecta prin rețea la baza de date oferind un cuplu clasic utilizator / parolă.

pe lângă faptul că permite unui utilizator să se conecteze prin rețea la la o bază de date de pe server, trebuie să activați PostgreSQL pentru a asculta în diferite rețele., Pentru a face acest lucru, deschideți /etc/postgresql/current/main/postgresql.conf dvs. preferate editor și modifica listen_addresses ca mai jos:

listen_addresses = '*'

pentru a asculta pe toate interfețele de rețea. Consultați documentele pentru listen_addresses pentru alte opțiuni.

Pentru a crea o bază de date cu un utilizator care au drepturi depline asupra bazei de date, utilizați următoarea comandă:

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

prima linie de comandă creează utilizatorului cu o bază de date crearea de drepturi (D) fără a adăuga drepturi de utilizator -O) și se va solicita introducerea unei parole (-P)., A doua linie de comandă creează baza de date „mydb cu” myuser ” ca proprietar.

Acest mic exemplu se va potrivi probabil majorității nevoilor dvs. Pentru mai multe detalii, vă rugăm să consultați paginile man corespunzătoare sau documentația online.

repornirea serverului

după configurarea rețelei / utilizatori poate fi necesar să reîncărcați serverul, aici este o comandă sugerată pentru a face acest lucru.

sudo /etc/init.d/postgresql reload

unele modificări de setări în postgresql.,conf necesită o repornire completă, care va termina conexiuni active și anulează tranzacțiile neangajate:

sudo /etc/init.d/postgresql restart

bibliografie

Dacă nu sunteți familiarizați cu SQL poate doriți să se uite în acest limbaj puternic, deși unele utilizări simple de PostgreSQL poate să nu solicite această cunoaștere (cum ar fi un simplu proiect Django).

site-ul PostgreSQL conține o multitudine de informații despre utilizarea acestei baze de date. În special, tutorialul este un punct de plecare util, dar puteți sări peste pasul de instalare, deoarece l-ați instalat deja folosind pachetele Ubuntu.,

depanare

fe_sendauth: nici o parolă furnizată

pg_hba ta.conf specifică faptul că autentificarea md5 va fi utilizată pentru această conexiune pe baza gazdei de origine, a metodei de conectare și a numelui de utilizator/bazei de date solicitate, dar aplicația dvs. nu a furnizat o parolă. modificați modul de autentificare sau setați o parolă pentru utilizatorul la care vă conectați, apoi specificați parola respectivă în setările de conectare ale aplicației.,

FATAL: rolul „myusername” nu există

implicit PostgreSQL se conectează la utilizatorul PostgreSQL cu același nume ca și utilizatorul curent Unix. Nu ați creat un utilizator PostgreSQL cu acest nume în baza de date.

creați un utilizator potrivit sau specificați un alt nume de utilizator cu care să vă conectați. În instrumentele de linie de comandă, steagul-U face acest lucru.

FATAL: baza de date „myusername” nu există

Un utilizator pe nume „myusername” există, dar nu există nici o bază de date cu același nume.,

implicit, PostgreSQL se conectează la baza de date cu același nume ca și utilizatorul la care vă conectați, dar nu creează automat baza de date dacă nu există.

creați baza de date sau specificați o altă bază de date la care să vă conectați.

FATAL: autentificarea Peer a eșuat pentru utilizatorul „myusername”

vă conectați la localhost printr-o priză Unix. Un utilizator numit „myusername” există, dar utilizatorul dvs. curent UNIX nu este același cu numele de utilizator., PostgreSQL este setat să utilizeze autentificarea „peer” pe sockets UNIX pentru acest combo utilizator/db, astfel încât necesită numele de utilizator unix și postgresql pentru a se potrivi.

Conectați-vă de la utilizatorul Unix care se potrivește cu utilizatorul PostgreSQL dorit – poate cu sudo-unumele de utilizator psql-sau schimbați pg_hba.conf pentru a utiliza un mod de autentificare diferit ca ” md5 ” pentru acest nume de utilizator.,

nu se poate conecta la server: Nu există un astfel de fișier sau director

O eroare de genul asta (eventual cu un alt unix socket cale, în funcție de instalare):

 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"?

poate însemna o serie de lucruri:

* serverul nu este pornit;

* serverul are un alt unix_socket_directories implicit la clientul tău libpq, fie din cauza la diferite compilat-în incapacitate de plată sau o nepotrivite cadru;

* serverul este de a asculta pe un alt „port”., PostgreSQL emulează porturile TCP / IP pe soclurile Unix folosind numărul portului ca sufix pentru fișierul socket, de exemplu 5432.

eliminați-le pe rând.

Mai întâi asigurați-vă că serverul rulează. Pe Ubuntu, ps-u postgres-f vă va arăta orice procese care rulează ca postgres utilizator-doriți să vedeți mai multe numite postgres.

acum, asigurați-vă că serverul este de ascultare în cazul în care clientul crede că este. Pentru a afla PostgreSQL server socket director:

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

sau mai vechi PostgreSQL versiuni, unix_socket_directory ca parametru schimbat numele., Pentru a arăta server port (care se aplică atât pentru TCP/IP și unix sockets):

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

Dacă nu vă puteți conecta chiar și cu psql sub unix utilizator postgres puteți verifica priza dir cu 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

În acest caz, prima linie este priza de locație. Acest server are Director socket / tmp cu portul 5432.,

dacă clientul dvs. caută într-un alt director socket, probabil încercați să vă conectați prin sockets Unix la calea socket implicită și/sau la portul implicit, iar libpq aplicația dvs. client este legată are o cale și/sau port socket Unix diferit compilat decât PostgreSQL dvs. care rulează. Cel mai probabil LD_LIBRARY_PATH sau /etc/LD.so.conf are un libpq diferit înainte de cel care a venit cu versiunea dvs. de PostgreSQL. În general, acest lucru nu contează prea mult, puteți trece peste directorul socket.,

Pentru a specifica o alternativă socket director și/port port pentru a conecta la, specifica priza dir calitate de gazdă parametru în opțiuni de conectare, de exemplu, pentru a conecta ca utilizator bob la server de ascultare în /tmp pe portul 5433:

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

sau în conexiune șir de forma:

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

La fel funcționează cu orice client care utilizează libpq (toate PostgreSQL client instrumente, în plus, de exemplu psycopg2, Pg gem în Ruby/Rails, PHP postgres și DOP, Perl e DBB::Pg, etc)., Nu funcționează cu clienți non-libpq precum PgJDBC, py-postgresql etc., dar majoritatea acestora nu acceptă deloc prize unix. Consultați documentația client pentru clienții non-libpq.

descărcări oficiale PostgreSQL

proiectul PostgreSQL oferă o listă oficială de locații de descărcare, inclusiv un depozit de software Ubuntu, la pagina sa de descărcare. În special, utilizatorii Ubuntu pot obține versiuni PostgreSQL mai noi decât cele ambalate în versiunea lor Ubuntu folosind apt-get via apt.postgresql.org.

pentru asistență și servicii în jurul PostgreSQL consultați pagina Servicii și asistență.,

EnterpriseDB

pagina Descărcări PostgreSQL Linux conține o secțiune pe „instalare grafică” construit de EnterpriseDB. Descărcați programul de instalare, modificați proprietățile sale pentru a permite să-l ruleze ca comandă (are .rulați extensia) și rulați-o din promptul de comandă ca în „sudo whateveritwas.fugi”.

va termina cu

  • configurat DB server de exemplu, care începe cu server-ul dvs.
  • pgAdmin III UI aplicație client

Rețineți că software-ul instalat nu va fi integrat cu Ubuntu software center., Drept urmare, nu veți primi actualizări de securitate de la Ubuntu. Cu toate acestea, versiunea instalată se va potrivi îndeaproape cu cea mai recentă versiune Ubuntu.

la cheie Linux

un aparat PostgreSQL bazat pe Ubuntu este una dintre cele mai simple moduri de a obține până și să fie difuzate cu PostgreSQL pe Ubuntu. Face parte dintr-o familie de aparate software pre-integrate la cheie Linux bazate pe Ubuntu 10.04.1 (Lucid LTS).