Instalarea și configurarea inițială a PostgreSQL. Crearea unei baze de date

PostgreSQL este un SGBD multiplatformă cu relații obiect cu deschidere cod sursă. Acest articol vă va arăta cum să instalați PostgreSQL în Ubuntu Linux, conectați-vă la acesta și executați câteva interogări SQL simple, precum și cum să configurați o copie de rezervă.

Pentru a instala PostgreSQL 9.2 pe Ubuntu 12.10, executați următoarele comenzi:

sudo apt-add-repository ppa:pitti/postgresql
sudo apt-get update
sudo apt-get install postgresql-9.2

Să încercăm să lucrăm cu DBMS prin intermediul shell-ului:

sudo -u postgres psql

Să creăm o bază de date de testare și un utilizator de testare:

CREATE DATABASE test_database;
CREATE USER test_user CU parola "qwerty" ;
ACCORDĂ TOATE PE BAZĂ DE DATE baza_de_date_test CĂTRE utilizator_test;

Pentru a ieși din shell, introduceți comanda \q .

Acum să încercăm să lucrăm cu baza de date creată în numele test_user:

psql -h localhost test_database test_user

Să creăm un tabel nou:

CREATE SEQUENCE user_ids;
CREATE TABLE utilizatori (
id INTEGER PRIMARY KEY DEFAULT NEXTVAL ("user_ids") ,
autentificare CHAR(64) ,
parola CHAR(64));

Vă rugăm să rețineți că, spre deosebire de alte SGBD, PostgreSQL nu are coloane cu proprietatea auto_increment. În schimb, Postgres folosește secvențe. Pe în acest moment Este suficient să știm că folosind funcția nextval putem obține numere unice pentru o anumită secvență:

SELECTAȚI NEXTVAL ("user_ids");

Prin setarea valorii implicite pentru câmpul ID din tabelul utilizatorilor la NEXTVAL ("user_ids"), am obținut același efect pe care îl dă auto_increment. La adăugarea de noi înregistrări în tabel, nu trebuie să specificăm id-ul, deoarece va fi generat automat un id unic. Mai multe tabele pot folosi aceeași secvență. Astfel, putem garanta că valorile unor câmpuri din aceste tabele nu se suprapun. În acest sens, secvențele sunt mai flexibile decât auto_increment.

Același tabel poate fi creat folosind o singură comandă:

CREATE TABLE users2 (
id CHEIE PRIMARĂ DE SERIE ,
autentificare CHAR(64) ,
parola CHAR(64));

În acest caz, secvența pentru câmpul id este creată automat.

Acum folosind comanda \d puteți vedea o listă cu toate tabelele disponibile, iar folosind \d utilizatorii puteți vedea o descriere a tabelului utilizatori. Dacă nu obțineți informațiile pe care le căutați, încercați \d+ în loc de \d . Puteți obține o listă de baze de date cu comanda \l și puteți trece la o anumită bază de date cu comanda \c dbname. Pentru a afișa ajutorul comenzii, spuneți \?

.

Este important de reținut că PostgreSQL convertește numele tabelelor și coloanelor în litere mici în mod implicit. Dacă nu doriți acest comportament, puteți utiliza ghilimele duble:

CREATE TABLE „otherTable” („someValue” VARCHAR (64) ) ;

O altă caracteristică a PostgreSQL care poate cauza dificultăți atunci când începeți să lucrați cu acest SGBD sunt așa-numitele „scheme”. O schemă este ceva ca un spațiu de nume pentru tabele, ca un director cu tabele în interiorul unei baze de date.

Crearea unei scheme:

CREATE SCHEMA rezervări;

Comutați la schemă:

SETĂ search_path TO rezervări; Vizualizați lista schemele existente

puteți folosi comanda \dn. Schema implicită este denumită public. În principiu, puteți utiliza cu succes PostgreSQL fără să știți despre existența schemelor. Dar atunci când lucrați cu cod vechi și în unele cazuri marginale, cunoașterea schemelor poate fi foarte utilă.

În caz contrar, lucrul cu PostgreSQL nu este mult diferit de lucrul cu orice alt SGBD relațional:
INSERT INTO utilizatori (login, parola)
VALORI ("afiskon" , "123456" );

SELECT * FROM utilizatori;

Dacă acum încercați să vă conectați la Postgres de pe o altă mașină, veți eșua:

psql -h 192.168.0.1 test_database test_user
Psql: nu s-a putut conecta la server: conexiune refuzată
Serverul rulează pe gazda „192.168.0.1” și acceptă

Conexiuni TCP/IP pe portul 5432?

Pentru a remedia acest lucru, adăugați linia:

listen_addresses = "localhost,192.168.0.1"

... și în fișierul /etc/postgresql/9.2/main/postgresql.conf.

1. Instalare

1.1. Instalare din depozitul oficial Dacă cel mai recent disponibil este important pentru dvs Versiunea PostgreSQL

(dacă nu, vă sfătuiesc să vă gândiți cu atenție), atunci trebuie să îl instalați din depozitul oficial PostgreSQL. Acest lucru se poate face urmând instrucțiunile oficiale. Apoi, ar trebui să actualizați pachetele:

$ sudo apt-get update

Și instalați PostgreSQL cu comanda:

  • $ sudo apt-get install postgresql-x.x x.x

- versiunea necesară Lista cu toate versiuni disponibile

poate fi vizualizat cu comanda:

$ sudo apt-cache search postgresql

Instalarea PostgreSQL din depozitul de sistem de operare se face prin adăugarea a două pachete principale:

$ sudo apt-get install postgresql postgresql-contrib

2. Consola PostgreSQL

Toate operațiunile disponibile asupra bazelor de date și utilizatorilor sunt efectuate din consolă psql.

2.1. Conectați-vă la consolă

Mai întâi trebuie să vă autentificați ca utilizator postgres, acest lucru este posibil doar cu drepturi rădăcină:

# su - postgres

Utilizator postgres- acesta este un fel de superutilizator pentru baza de date Date PostgreSQL. Apoi, de sub utilizator postgres te poti conecta in consola:

Sau mai ușor, doar conectați-vă la consolă psql sub utilizator postgres:

$ sudo -u postgres psql

2.2. Ieșirea din consolă

Când toate operațiunile asupra utilizatorilor și bazelor de date PostgreSQL au fost finalizate în consola psql, nu este imediat posibil să ne dăm seama cum să ieși din ea. Totul este foarte simplu aici:

Postgres=#\q

Și, dacă este necesar, părăsim utilizatorul postgres:

3. Utilizatori PostgreSQL

3.1. Crearea unui utilizator

Totul este destul de simplu aici:

# CREATE USER nume de utilizator CU PAROLA „12345”;

  • nume de utilizator- autentificare utilizator nou
  • ‘12345’ - Parola utilizator. Introdusă între ghilimele

3.2. Ștergerea unui utilizator

Este și mai simplu aici:

# DROP USER nume de utilizator;

  • nume de utilizator- autentificarea utilizatorului care trebuie șters.

4. Baze de date

Toate manipulările cu baza de date sunt efectuate și în consolă psql.

4.1. Crearea unei baze de date

Totul aici este la fel ca atunci când creați un utilizator:

# CREATE DATABASE dbname;

4.2. Ștergeți o bază de date

# DROP DATABASE dbname;
  • dbname- numele bazei de date care urmează a fi ștearsă

Vă rugăm să rețineți că baza de date va refuza să fie ștearsă în anumite cazuri:

  • Dacă există utilizatori cu drepturi la această bază de date. Înainte de a șterge baza de date, drepturile acestora trebuie să fie revocate. Mai multe despre asta mai târziu.
  • Dacă există cel puțin o sesiune de conexiune deschisă cu baza de date. În acest caz, sesiunile vor trebui să fie închise. Ca ultimă soluție, puteți opri pur și simplu serverele care interacționează cu această bază de date în momentul înlăturării acesteia (deși nu are rost să le porniți după ștergerea bazei de date)

4.3. Atribuirea drepturilor utilizatorilor

A avea o bază de date și utilizatori într-un sistem PostgreSQL în sine nu produce rezultate. Pentru funcţionare corectă utilizator specific cu o anumită bază de date, trebuie să i se atribuie drepturi pentru a lucra cu ea. Pentru a face acest lucru, rulați comanda:

# ACORDĂ TOATE PRIVILEGIILE PE BAZĂ DE DATE dbname CĂTRE nume de utilizator;

  • dbname- numele bazei de date căreia trebuie să i se acorde drepturi de acces
  • nume de utilizator- numele utilizatorului căruia i se vor acorda drepturi asupra bazei de date specificate

4.4. Eliminarea drepturilor utilizatorului

Uneori, devine necesară schimbarea utilizatorului care gestionează baza de date sau pur și simplu revocarea drepturilor pentru ștergerea ulterioară a acesteia. Recomand să nu neglijați această comandă și să acționați conform principiului „Un utilizator administrează o bază de date”.

Primul test care arată că puteți accesa serverul de baze de date este să încercați să creați o bază de date. Server care rulează PostgreSQL poate gestiona mai multe baze de date. De obicei, pentru fiecare proiect sau pentru fiecare utilizator este utilizat bază separată date. Este posibil ca administratorul mașinii dvs. să fi creat deja o bază de date pentru dvs. Ar fi trebuit să vă spună numele bazei de date. În acest caz, puteți sări peste această secțiune și treceți la următoarea. Pentru a crea noua baza date, în acest exemplu numit mydb , puteți utiliza

următoarea comandă : $createdb mydb Dacă comanda s-a finalizat fără niciun mesaj, atunci

acest pas a fost trecut cu succes și puteți sări peste ceea ce este scris mai jos până la sfârșitul acestei secțiuni.

Dacă obțineți ceva similar cu: createdb: command

nu a fost găsit

aceasta înseamnă că produsul PostgreSQL nu a fost instalat corect. Fie nu totul a fost instalat, fie calea de căutare din shell nu a fost setată corespunzător. Încercați să apelați această comandă folosind calea completă:

$ /usr/local/pgsql/bin/createdb mydb

Calea completă pe computer poate fi diferită. Contactați administratorul sau verificați instrucțiunile de instalare pentru a corecta situația.

Un alt mesaj pe care îl puteți primi: createdb: nu s-a putut conecta la baza de date postgres: nu s-a putut conecta la server: Nu există un astfel de fișier sau director Nu există un astfel de fișier sau director. Serverul rulează local și acceptă conexiuni pe socket-ul domeniului Unix "/tmp/. s. PGSQL.5432"?

Aceasta înseamnă că serverul nu a fost pornit sau că nu a fost pornit așa cum se aștepta de către comanda createdb. Din nou, verificați instrucțiunile de instalare sau consultați administratorul. Un alt mesaj pe care îl puteți primi: createdb: nu s-a putut conecta la baza de date postgres: FATAL: utilizatorul „joe” nu există sub numele utilizatorului sub care rulează PostgreSQL (de obicei postgres) pentru a crea primul utilizator în DBMS.

Pentru comanda create database, puteți specifica, de asemenea, un nume de utilizator în PostgreSQL care este diferit de numele de utilizator curent al sistemului de operare; în acest caz, trebuie să setați numele de utilizator PostgreSQL utilizând opțiunea -U sau setând variabila de mediu PGUSER. Dacă utilizatorul dorit

există, dar nu are permisiunile necesare pentru a crea o bază de date, veți vedea următorul mesaj: createb: crearea bazei de date eșuată: EROARE: permisiunea refuzată pentru crearea bazei de date Nu toți utilizatorii au autorizație de a crea baze de date noi. Dacă PostgreSQL vă respinge încercările de a crea baze de date, atunci administratorul mașinii va trebui să vă acorde drepturi de a crea baze de date. Consultați-l în acest caz.

Dacă ați instalat singur PostgreSQL, atunci ar trebui, în scopurile urmărite de aceasta

manual de instruire conectați-vă ca utilizator în numele căruia este lansat serverul de baze de date. De asemenea, puteți crea baze de date cu orice alte nume.

PostgreSQL vă permite să creați orice număr de baze de date pe un singur server. Numele bazelor de date trebuie să fie compuse din litere și cifre (întâi trebuie să existe întotdeauna o literă) și să nu aibă o lungime mai mare de 63 de octeți. Este destul de convenabil să creați o bază de date cu același nume ca și utilizatorul. Multe instrumente vor utiliza implicit acest nume ca nume de bază de date, astfel încât nu trebuie să faceți clic pe prea multe butoane. Pentru a crea o astfel de bază de date cu același nume cu utilizatorul, tastați pur și simplu: $ createdb Dacă nu doriți să utilizați baza de date în viitor, o puteți șterge. De exemplu, dacă sunteți proprietarul (creatorul) bazei de date mydb, o puteți renunța folosind următoarea comandă: $ dropdb mydb (Pentru această comandă, trebuie să vă asigurați că specificați un nume de bază de date; nu va presupune că numele bazei de date este numele utilizatorului curent.) Această comandă

IMPORTANT: Dacă nu aveți experiență de lucru cu baze de date sau această experiență este minimă, atunci vă recomandăm insistent să începeți cu o bază minimă pentru a elabora procesul.

Capturile de ecran din instrucțiuni arată lucrul cu o bază minimă și, în consecință, timpul este indicat pentru o bază minimă, dar lucrul cu o bază extinsă și maximă va dura mai mult.

Descărcarea și instalarea serverului de baze de date PostgreSQL

http://www.postgresql.org/download/windows/

1. Descărcați program gratuit pentru baza de date PostgreSQL de pe site-ul oficial http://www.postgresql.org/
descărcare/windows/

http://www.enterprisedb.com/products-services-training/pgdownload#windows:

Apoi urmați linkul către pagina detaliata versiuni de baze de date pentru diferite sisteme de operare: http://www.enterprisedb.com/
produse-servicii-instruire/
pgdownload#windows :


IMPORTANT: Vă recomandăm să instalați serverul de baze de date și să faceți selecții în Sistem pe 64 de biți cu cel puțin 6 GB RAM atunci când lucrați cu baze de date minime și extinse. În cazul unei baze maxime, cantitatea de RAM recomandată este de la 32 GB, de asemenea de dorit disc rapid. Pe un computer cu un sistem pe 32 de biți, procesul de importare a datelor, de indexare și, de fapt, de preluare a acestora va dura foarte, foarte mult timp, așa că este mai bine să renunțați la această idee.

Dacă nu cunoașteți adâncimea de biți a sistemului de operare, o puteți căuta în proprietățile computerului ( butonul din dreapta mouse-ul pe elementul „Computer”, selectați „Proprietăți” din meniu):


2. Instalați baza de date PostgreSQL descărcată. În timpul instalării, aproape totul este implicit...


...cu excepția câtorva lucruri.

3. Începem operația de optimizare a tabelului într-un mod similar:

vacuum "eng_data_table";


Optimizarea durează în medie 15-30 de minute.

Notă: Efectuăm cererile pe rând, ștergând mai întâi cererile anterioare care au fost deja executate. Puteți afla dacă solicitarea a fost finalizată sau nu din mesajul din Panoul de ieșire din partea de jos (apare când solicitarea este finalizată) și puteți afla timpul de execuție în bara de stare din partea de jos a ferestrei.