PostgreSQL-iga alustamine. Installimine OS-i hoidlast. Kasutajatele õiguste määramine

Pärast allalaadimist Ingliskeelne märksõnade andmebaas, peate installima kohapeal andmebaasiserveri ja õppima, kuidas teha valikuid. Selleks pakume samm-sammult juhiseid.

TÄHTIS: Kui teil pole andmebaasidega töötamise kogemust või see on minimaalne, soovitame protsessi väljatöötamiseks alustada minimaalsest baasist.

Juhendis olevad ekraanipildid näitavad töötamist minimaalse aluspinnaga ja vastavalt on näidatud minimaalse baasi aeg, kuid pikendatud ja maksimaalse alusega töötamine võtab kauem aega.

PostgreSQL andmebaasiserveri allalaadimine ja installimine

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

1. Laadige alla tasuta programm aluse jaoks PostgreSQL-i andmed ametlikult veebisaidilt http://www.postgresql.org/
allalaadimine/windows/

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

Seejärel järgige linki üksikasjalik leht andmebaasi versioonid erinevatele OS-idele: http://www.enterprisedb.com/
tooted-teenused-koolitus/
pgdownload#windows :


TÄHTIS: Soovitame installida andmebaasiserveri ja teha valikud 64-bitine süsteem vähemalt 6 GB RAM minimaalsete ja laiendatud andmebaasidega töötamisel. Maksimaalse baasi puhul on soovitatav RAM-i maht alates 32 GB, samuti soovitav kiire ketas. 32-bitise süsteemiga arvutis võtab andmete importimine, indekseerimine ja tegelik allalaadimine väga-väga kaua aega, seega on parem sellest ideest loobuda.

Kui te ei tea oma OS-i bitisügavust, saate seda vaadata arvuti atribuutidest ( parem nupp hiirega üksusel "Arvuti", valige menüüst "Atribuudid"):


2. Installige allalaaditud PostgreSQL-i andmebaas. Installimise ajal on peaaegu kõik vaikimisi...


...välja arvatud mõned asjad.

3. Käivitage tabeli optimeerimise toiming sarnasel viisil:

vaakum "eng_data_table";


Optimeerimine võtab keskmiselt 15-30 minutit.

Märkus. Täidame taotlusi ükshaaval, esmalt kustutame varasemad juba täidetud päringud. Seda, kas päring on täidetud või mitte, saate teada allosas asuvast väljundpaanist (see ilmub päringu täitmisel) ja täitmisaja saate teada akna allosas olekuribalt.

PostgreSQL on platvormideülene avatud objektiga relatsiooniline DBMS lähtekoodi. See artikkel näitab teile, kuidas PostgreSQL-i installida Ubuntu Linux, ühendage sellega ja looge paar lihtsad SQL-päringud, samuti kuidas varukoopiaid seadistada.

PostgreSQL 9.2 installimiseks Ubuntu 12.10-sse käivitage järgmised käsud:

sudo apt-add-repository ppa:pitti/ postgresql
sudo apt-get värskendus
sudo apt-get install postgresql-9.2

Proovime töötada DBMS-iga läbi kesta:

sudo -u postgres psql

Loome testandmebaasi ja testkasutaja:

CREATE DATABAAS test_andmebaas;
LOO KASUTAJA test_kasutaja parooliga "qwerty" ;
ANNA KÕIK ANDMEBAASIS test_andmebaas kasutajale test_user;

Shellist väljumiseks sisestage käsk \q .

Proovime nüüd loodud andmebaasiga testi_kasutaja nimel töötada:

psql -h localhost test_database test_user

Loome uue tabeli:

CREATE SEQUENCE user_ids;
CREATE TABLE kasutajad (
id TÄISARV PRIMARY KEY DEFAULT NEXTVAL ("user_ids") ,
logi sisse CHAR(64) ,
parool CHAR(64));

Pange tähele, et erinevalt mõnest teisest DBMS-ist pole PostgreSQL-il atribuudiga auto_increment veerge. Selle asemel kasutab Postgres järjestusi. Sees hetkel piisab teadmisest, et kasutades nextval funktsiooni saame unikaalsed numbrid antud jada jaoks:

SELECT NEXTVAL ("kasutaja_id") ;

Määrates kasutajate tabeli ID-välja vaikeväärtuseks NEXTVAL("kasutaja_id"), oleme saavutanud sama efekti, mille annab auto_increment. Tabelisse uusi kirjeid lisades ei pea me id-d määrama, sest unikaalne id genereeritakse automaatselt. Sama järjestust võivad kasutada mitu tabelit. Nii saame tagada, et nende tabelite mõne välja väärtused ei kattu. Selles mõttes on jadad paindlikumad kui auto_increment.

Täpselt sama tabeli saab luua vaid ühe käsuga:

LOO TABLE kasutajad2 (
id SERIAL PRIMARY KEY ,
logi sisse CHAR(64) ,
parool CHAR(64));

Sel juhul luuakse ID-välja jada automaatselt.

Nüüd, kasutades käsku \d, näete kõigi saadaolevate tabelite loendit ja \d kasutajate abil näete kasutajate tabeli kirjeldust. Kui te ei saa otsitavat teavet, proovige \d+ asemel klahvi \d+. Andmebaaside loendi saate hankida käsuga \l ja lülituda konkreetsele andmebaasile käsuga \c dbname. Käsu abi kuvamiseks öelge \?

. Oluline on märkida, et PostgreSQL-is kantakse vaikimisi tabelite ja veergude nimed üle. Kui te seda käitumist ei soovi, võite kasutada jutumärke:

CREATE TABLE "otherTable" ("someValue" VARCHAR (64 ) ) ;

Teine PostgreSQL-i funktsioon, mis võib selle DBMS-iga töö alustamisel raskusi tekitada, on nn skeemid. Skeem on midagi tabelite nimeruumi sarnast, näiteks andmebaasi sees olevate tabelitega kataloog.

Skeemi loomine:

LOO SCHEMA broneeringuid;

Lülitu skeemile:

SET search_path broneeringuteni;

Olemasolevate skeemide loendit saate vaadata käsu \dn abil. Vaikimisi skeemi nimi on avalik. Põhimõtteliselt saab PostgreSQL-i edukalt kasutada ka ilma skeemide olemasolust teadmata. Kuid pärandkoodiga töötamisel ja mõnel juhul võib skeemide tundmine olla väga kasulik.

Vastasel juhul ei erine PostgreSQL-iga töötamine palju tööst mis tahes muu relatsioonilise DBMS-iga:

SISESTAGE kasutajaid (sisselogimine, parool)
VÄÄRTUSED ("afiskon" , "123456" ) ;
SELECT * FROM kasutajad;

Kui proovite nüüd mõnest teisest masinast Postgresiga ühendust luua, ei õnnestu:

psql -h 192.168.0.1 test_andmebaas test_user

Psql: serveriga ei saa ühendust: Ühendamisest keelduti
Kas server töötab hostis "192.168.0.1" ja nõustub
TCP/IP-ühendused pordis 5432?

Selle parandamiseks lisage rida:

listen_addresses = "localhost, 192.168.0.1"

...ka faili /etc/postgresql/9.2/main/postgresql.conf.

Süsteemi administreerimine

See postitus on lühikesed juhised algajatele, neile, kes installisid PostgreSQL-i esimest korda. Kõik on siin vajalikku teavet PostgreSQL-iga alustamiseks.

Ühenduse loomine DBMS-iga

Esimene asi, mida teha, on saada juurdepääs PostgreSQL-ile, juurdepääs superkasutajana.
Autentimisseaded asuvad failis pg_hba.conf.
  1. kohalikud kõik postgresi eakaaslased
See rida ütleb, et postgresi kasutaja saab ühenduse luua mis tahes kohaliku andmebaasiga PostgreSQL DBMS pistikupesa kaudu. Parooli pole vaja sisestada, operatsioonisüsteem edastab kasutajanime ja seda kasutatakse autentimiseks.
Ühendame:
  1. $ sudo -u postgres psql postgres postgres
Võrgu kaudu ühenduse loomiseks peate failile pg_hdba.conf lisama rea:
  1. # TÜÜPI ANDMEBAAS KASUTAJA AADRESSI MEETOD
  2. hostssl kõik kõik 0.0.0.0/0 md5
Autentimismeetod md5 tähendab, et ühenduse loomiseks peate sisestama parooli. See pole eriti mugav, kui kasutate sageli psql-konsooli. Kui soovite mõnda tegevust automatiseerida, on halb uudis see, et psql ei aktsepteeri parooli argumendina. Nende probleemide lahendamiseks on kaks võimalust: määrata sobiv keskkonnamuutuja ja salvestada parool spetsiaalsesse .pgpass faili.

Keskkonnamuutuja PGPASSWORD seadistamine

Ütlen kohe, et parem on seda meetodit mitte kasutada, sest mõned operatsioonisüsteemid võimaldavad teil vaadata tavakasutajatele keskkonnamuutujad kasutades ps. Aga kui soovite, peate terminali kirjutama:
  1. eksportida PGPASSWORD=mypasswd
Muutuja on saadaval praeguses seansis. Kui peate määrama muutuja kõigi seansside jaoks, siis peate lisama näite rea .bashrc või .bash_profile faili

Parooli salvestamine .pgpass-faili

Kui me räägime Linuxist, siis peaks fail asuma kaustas $HOME (/home/username). Kirjutamis- ja lugemisõigus peab olema ainult omanikul (0600). Peate faili kirjutama sellised read:
  1. hostinimi:port:andmebaas:kasutajanimi:parool
Esimesele neljale väljale saate kirjutada “*”, mis tähendab, et filtreerimist ei toimu (täielik valik).

Abiinfo hankimine

\? - annab kõik ära saadaolevad käsud koos nende lühikirjeldusega,
\h - kuvab kõigi saadaolevate päringute loendi,
\h CREATE – pakub abi konkreetse päringu puhul.

DBMS-i kasutajahaldus

Kuidas saada PostgreSQL-i kasutajate loendit?
  1. Või võite esitada päringu tabelist pg_user.

SELECT * FROM pg_user ;

Uue PostgreSQL-i kasutaja loomine Alates kest
  1. psql seda saab teha käsu CREATE abil.
LOO KASUTAJA kasutajanimi parooliga "parool" ;
  1. Või võite kasutada terminali.
loojakasutaja -S -D -R -P kasutajanimi

Teil palutakse sisestada parool.

  1. Kasutaja parooli muutmine

MUUDA KASUTAJA kasutajanimi PAROOLIGA "parool" ;

Kasutajarollide muutmine
  1. Kasutajale andmebaaside loomise loa andmiseks käivitage järgmine päring:

ALTER ROLE kasutajanimi WITH CREATEDB ;

Andmebaasi haldamine
  1. Andmebaaside loendi kuvamine psql terminalis: Sama Linuxi terminalist:
psql -l
  1. Andmebaasi loomine psql-ist (PostgreSQL-i terminal)
LOO ANDMEBAAS dbname OMANIK dbadmin ; Loomine uus alus
  1. andmed terminali abil:

Createdb -O kasutajanimi dbname;

Kui kasutaja on andmebaasi omanik, siis on tal kõik õigused. Kuid kui soovite anda juurdepääsu teisele kasutajale, saate seda teha käsu GRANT abil. Allolev päring võimaldab kasutajal andmebaasiga ühenduse luua. Kuid ärge unustage konfiguratsioonifail pg_hba.conf, peab sellel olema ka vastavad ühenduse õigused.
  1. ANNA ÜHENDUS ANDMEBAASIS dbname KODULE dbadmin ;

Esimene test, mis näitab, et teil on juurdepääs andmebaasiserverile, on andmebaasi loomine. Käivitatud PostgreSQL server

saab hallata mitut andmebaasi. Tavaliselt kasutatakse iga projekti või kasutaja jaoks eraldi andmebaasi. Võimalik, et teie masina administraator on teie jaoks juba andmebaasi loonud. See oleks pidanud teile andma teie andmebaasi nime. Sel juhul võite selle jaotise vahele jätta ja liikuda järgmise juurde. Uue andmebaasi loomiseks, mida selles näites nimetatakse mydb, saate kasutada järgmist käsku: $ Createdb mydb

Kui käsk lõpetati ilma teadeteta, siis see samm

läbiti edukalt ja võite allpool kirjutatu vahele jätta kuni selle jaotise lõpuni.

Kui saate midagi sarnast: loodudb: käsk

ei leitud see tähendab, et PostgreSQL-i toodet ei installitud õigesti. Kas kõike ei installitud või otsingutee teie kestas ei olnud õigesti määratud. Proovige seda käsku kutsuda, kasutades täielikku teed:

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

Täielik tee

võib teie masinal olla erinev. Olukorra parandamiseks võtke ühendust oma administraatoriga või vaadake installijuhiseid.

kus joe asemel mainitakse teie sisselogimisnime. See teade kuvatakse, kui administraator pole teile PostgreSQL-is kasutajat loonud. (PostgreSQL-i kasutaja ei ole operatsioonisüsteemi kasutaja.) Kui olete administraator, vaadake peatükist 20 teavet kasutaja loomise kohta. Peate registreeruma aadressil operatsioonisüsteemi selle kasutaja nime all, kelle all PostgreSQL töötab (tavaliselt postgres), et luua DBMS-is esimene kasutaja.

Andmebaasi loomise käsu jaoks saate PostgreSQL-is määrata ka kasutajanime, mis erineb teie praegusest operatsioonisüsteemi kasutajanimest; sel juhul peate määrama PostgreSQL-i kasutajanime, kasutades suvandit või sätet -U keskkonna muutuja PGUSER.

Kui

soovitud kasutaja

on olemas, kuid tal pole andmebaasi loomiseks vajalikke õigusi, näete järgmist teadet: Createdb: andmebaasi loomine ebaõnnestus: VIGA: andmebaasi loomise luba on keelatud Igal kasutajal ei ole luba uute andmebaaside loomiseks. kustutab füüsiliselt kõik määratud andmebaasiga seotud failid, et neid ei saaks taastada, seega tehke seda toimingut väga ettevaatlikult.

1. Paigaldamine

1.1. Installimine ametlikust hoidlast

Kui PostgreSQL-i uusim saadaolev versioon on teile oluline (kui mitte, siis soovitan teil hoolikalt mõelda), peate selle installima ametlikust PostgreSQL-i hoidlast. Seda saab teha ametlikke juhiseid järgides. Seejärel peaksite pakette värskendama:

$ sudo apt-get värskendus

Ja installige PostgreSQL käsuga:

$ sudo apt-get install postgresql-x.x

  • x.x- nõutav versioon

Saate vaadata kõigi saadaolevate versioonide loendit käsuga:

$ sudo apt-cache otsing postgresql

1.2. Installimine OS-i hoidlast

PostgreSQL-i installimine OS-i hoidlast toimub kahe põhipaketi lisamisega:

$ sudo apt-get install postgresql postgresql-contrib

2. PostgreSQL konsool

Kõik saadaolevad toimingud andmebaaside ja kasutajatega tehakse konsoolist psql.

2.1. Logige sisse konsooli

Kõigepealt peate kasutajana sisse logima postgres, see on võimalik ainult õigustega juur:

# su - postgres

Kasutaja postgres on PostgreSQL-i andmebaasi omamoodi superkasutaja. Siis kasutaja alt postgres saate konsooli sisse logida:

Või lihtsam, logige lihtsalt konsooli sisse psql kasutaja all postgres:

$ sudo -u postgres psql

2.2. Konsoolist väljumine

Kui kõik toimingud PostgreSQL-i kasutajate ja andmebaasidega on psql-konsoolis tehtud, ei ole kohe võimalik aru saada, kuidas sellest väljuda. Siin on kõik väga lihtne:

Postgres=#\q

Ja vajadusel jätame kasutaja postgres:

3. PostgreSQL-i kasutajad

3.1. Kasutaja loomine

Siin on kõik üsna lihtne:

# LOO KASUTAJA kasutajanimi PAROOLIGA "12345";

  • kasutajanimi- uue kasutaja sisselogimine
  • ‘12345’ - Kasutaja parool. Sisestatud jutumärkidesse

3.2. Kasutaja kustutamine

Siin on veelgi lihtsam:

# DOP USER kasutajanimi;

  • kasutajanimi- kustutamist vajava kasutaja sisselogimine.

4. Andmebaasid

Kõik manipulatsioonid andmebaasiga tehakse ka konsoolis psql.

4.1. Andmebaasi loomine

Siin on kõik sama, mis kasutaja loomisel:

# CREATE DATABASE dbname;

4.2. Kustutage andmebaas

# DROP DATABASE dbname;
  • dbname- kustutatava andmebaasi nimi

Pange tähele, et andmebaas keeldub teatud juhtudel kustutamast:

  • Kui selle andmebaasi õigustega kasutajaid on. Enne andmebaasi kustutamist tuleb nende õigused tühistada. Sellest lähemalt hiljem.
  • Kui andmebaasiga on avatud vähemalt üks seanss. Sel juhul tuleb istungid sulgeda. IN viimase abinõuna, saate lihtsalt peatada serverite suhtlemise selle andmebaasiga selle eemaldamise ajal (kuigi pärast andmebaasi kustutamist pole nende käivitamisel mingit mõtet)

4.3. Kasutajatele õiguste määramine

Andmebaasi ja kasutajate kättesaadavus PostgreSQL süsteem iseenesest ei anna tulemusi. Sest õige toimimine konkreetne kasutaja konkreetse andmebaasiga tuleb talle anda õigused sellega töötamiseks. Selleks käivitage käsk:

# ANNA KÕIK ANDMEBAASI PRIVILEEGID dbname kasutajanimele;

  • dbname- andmebaasi nimi, millele juurdepääsuõigused tuleb anda
  • kasutajanimi- kasutaja nimi, kellele antakse õigused määratud alus andmeid

4.4. Kasutajaõiguste eemaldamine

Mõnikord on vaja muuta andmebaasi haldavat kasutajat või lihtsalt tühistada õigused selle hilisemaks kustutamiseks. Soovitan seda käsku mitte tähelepanuta jätta ja tegutseda põhimõttel "Üks kasutaja haldab üht andmebaasi."