Erinevus lehekülje "Postgresql" redaktsioonide vahel

Allikas: Kuutõrvaja
20. rida: 20. rida:
 
(logige uuesti sisse kasutaja postgres alt, et lisatud PATH'i take'eksid efffect'i :)  
 
(logige uuesti sisse kasutaja postgres alt, et lisatud PATH'i take'eksid efffect'i :)  
 
$ postmaster -i  
 
$ postmaster -i  
 
Andmebaaside loomine:
 
 
$ createdb database nimi
 
  
 
looge andmebaas  
 
looge andmebaas  
  
$ createdb mhh  
+
$ createdb mhh  
  
 
votke andmebaasiga ühendust  
 
votke andmebaasiga ühendust  
  
$ psql  
+
$ psql  
  
 
käsivitage lihtne päring  
 
käsivitage lihtne päring  
  
postgres=> SELECT datetime 'now';  
+
postgres=> SELECT datetime 'now';  
  
 
(kas tulemus on näha?)  
 
(kas tulemus on näha?)  
41. rida: 37. rida:
 
väljuge andmebaasi kliendist  
 
väljuge andmebaasi kliendist  
  
postgres=> \q  
+
postgres=> \q  
  
 
eemaldage andmebaas  
 
eemaldage andmebaas  
  
$ destroydb mhh  
+
$ destroydb mhh  
 
    
 
    
  
52. rida: 48. rida:
 
Päris käivitamine. Vanarahvas õpetab, et kõige etem on seda teha 'switch useriga -su' kuskilt rc.local'i kandist:  
 
Päris käivitamine. Vanarahvas õpetab, et kõige etem on seda teha 'switch useriga -su' kuskilt rc.local'i kandist:  
  
su postgres -c "/usr/local/pgsql/bin/postmaster -S -D /usr/local/pgsql/data"  
+
su postgres -c "/usr/local/pgsql/bin/postmaster -S -D /usr/local/pgsql/data"  
  
-S silent  
+
*-S silent  
-D databaasi kataloog; seda kataloogi uurige kohe kasvõi hhuvipärast!  
+
*-D databaasi kataloog; seda kataloogi uurige kohe kasvõi hhuvipärast!  
  
  
62. rida: 58. rida:
 
Kasutajate lisamine  
 
Kasutajate lisamine  
  
$ createuser -U -D kasutajanimi  
+
$ createuser -U -D kasutajanimi  
  
-U näitab, et kasutaja ei saa ise teha uusi kasutajaid  
+
*-U näitab, et kasutaja ei saa ise teha uusi kasutajaid  
-D ei ta ei saa teha uusi andmebaase  
+
*-D ei ta ei saa teha uusi andmebaase  
  
 
kasutajale omistage ka password:  
 
kasutajale omistage ka password:  
71. rida: 67. rida:
 
pg_passwd kasutjanimi (olge kataloogis /usr/local/pgsql/data):  
 
pg_passwd kasutjanimi (olge kataloogis /usr/local/pgsql/data):  
  
$ pg_passwd passwd  
+
$ pg_passwd passwd  
Username: kasutajanimi  
+
Username: kasutajanimi  
New password:  
+
New password:  
Re-enter new password:  
+
Re-enter new password:  
$  
+
$  
  
 
Peale selle peab failis  
 
Peale selle peab failis  
  
/usr/local/pgsql/data/pg_hba.conf (HostBased Conf); seal failis on kirjas ka hulga juhendeid
+
*/usr/local/pgsql/data/pg_hba.conf  
  
local          all                                          password passwd  
+
local          all                                          password passwd  
#local        all                                          trust  
+
#local        all                                          trust  
#host        all        127.0.0.1    255.255.255.255  trust  
+
#host        all        127.0.0.1    255.255.255.255  trust  
#host        all        192.168.1.1  255.255.255.255  trust  
+
#host        all        192.168.1.1  255.255.255.255  trust
  
 
antud juhul on kolm alumist rida välja kommenteeritud ja töötav rida ütleb, et lase sisse localhost'i pealt kõik kes on nõus end autentima.  
 
antud juhul on kolm alumist rida välja kommenteeritud ja töötav rida ütleb, et lase sisse localhost'i pealt kõik kes on nõus end autentima.  
93. rida: 89. rida:
 
Testide käivitamiseks sisenege kataloogi '/usr/src/pgsql/src/test' ja andke käsk:  
 
Testide käivitamiseks sisenege kataloogi '/usr/src/pgsql/src/test' ja andke käsk:  
  
$ make all runtest  
+
$ make all runtest  
  
 
tulemusena on näha mis saab ja lapski oskab hinnangut anda, eriti 45 aastane akadeemik :)  
 
tulemusena on näha mis saab ja lapski oskab hinnangut anda, eriti 45 aastane akadeemik :)  

Redaktsioon: 7. veebruar 2008, kell 12:46

Sissejuhatus

Tegemist on andmebaasi serveri (postgres) ja kliendiga (psql). Eks ta ole sama õrre peal MySQL'iga.

Esimese pooleteise tunni jooksul tähelepandud erinevused võrreldes MySQL'iga:

- kaasas on hea dokumentatsioon ja tutorid (ka PostScript'is) mida MySQL'il peaaegu polegi - erinevatele kasutajaltele erinevate õiguste andmine on keerulisem (sh. passwordid); siiski on lihtne anda lihtsaid õigusi - andmebaasi struktuurist kõneldes kasutatakse (tõenäoliselt põhjusega) mõisteid 'class', 'instance' jms mis on tuntud kui lähenetakse asjadele 'objekt-orienteeritud' seisukohast. Nt. MySQL'i andmeväli ei saa koosneda mitmest alamosast. Küll aga PostgrSQL'i puhul võib. - PostgreSQL'iga on kaasas paras 'make all runtest' i komplekt - lihtasti saab anda failidesse salvestatud SQL'i käske psql'i promptist (MySQL'is on see keerulisem) - üles nool aga ei too ette varem antud korraldust :(MySQL'is see toimib)

Paigaldus

Baasi loomine

Käivitage postgreSQL prooviks: (logige uuesti sisse kasutaja postgres alt, et lisatud PATH'i take'eksid efffect'i :) $ postmaster -i

looge andmebaas

$ createdb mhh 

votke andmebaasiga ühendust

$ psql 

käsivitage lihtne päring

postgres=> SELECT datetime 'now'; 

(kas tulemus on näha?)

väljuge andmebaasi kliendist

postgres=> \q 

eemaldage andmebaas

$ destroydb mhh 
 

Kui see kõik läks libedalt siis on peamiselt kõik korras; tavis vaid ivake kasutajete õigusi sättida ja kõik.

Päris käivitamine. Vanarahvas õpetab, et kõige etem on seda teha 'switch useriga -su' kuskilt rc.local'i kandist:

su postgres -c "/usr/local/pgsql/bin/postmaster -S -D /usr/local/pgsql/data" 
  • -S silent
  • -D databaasi kataloog; seda kataloogi uurige kohe kasvõi hhuvipärast!


Kasutajad-õigused

Kasutajate lisamine

$ createuser -U -D kasutajanimi 
  • -U näitab, et kasutaja ei saa ise teha uusi kasutajaid
  • -D ei ta ei saa teha uusi andmebaase

kasutajale omistage ka password:

pg_passwd kasutjanimi (olge kataloogis /usr/local/pgsql/data):

$ pg_passwd passwd 
Username: kasutajanimi 
New password: 
Re-enter new password: 
$ 

Peale selle peab failis

  • /usr/local/pgsql/data/pg_hba.conf
local          all                                          password passwd 
#local        all                                          trust 
#host         all         127.0.0.1     255.255.255.255   trust 
#host         all         192.168.1.1   255.255.255.255   trust  

antud juhul on kolm alumist rida välja kommenteeritud ja töötav rida ütleb, et lase sisse localhost'i pealt kõik kes on nõus end autentima. (st. alustama psql -u -d database) Kui kuidagi ei taha sisse lasta, siis kasautage ülevalt teist rida :)


Testide käivitamiseks sisenege kataloogi '/usr/src/pgsql/src/test' ja andke käsk:

$ make all runtest 

tulemusena on näha mis saab ja lapski oskab hinnangut anda, eriti 45 aastane akadeemik :)

Autorid kinnitavad, et kui mõni test fail'ib, siis see ei tähenda veel midagi; ei tolle konkreetse asja ega ammugi süsteemi kui terviku kohta. Minul nt failis 'geometry' test.

Upgrade

Postgres upgrade puhul oleks soovitatav dumpida kogu baas ja hiljem restoreda

pg_dumpall -U root > pgdump
/etc/init.d/postgresql stop

Ning vana database kausta võime näiteks kustutada või varundada, antudhetkel on selleks /home/pgsql ja kustutada ning luua uue ja anda selle chown käsuga postgres omandusse.

seejärel teeme vastavalt os'ile vajaliku ,et vahetuks postgres versioon

gentoos näiteks käsuga

emerge postgresql

Tasub peale baasi taas initsialiseerimist lubaca localhostist pääseda postgresile ligi ilma paroolideta (admin parool pole veel taastatud) Seda saame teha failist nano pg_hda ja seal võime lahtikommenteerida rea

local   all         all                               trust

Seejärel võime anda käsud

mkdir /home/pgsql
chown -R postgres:postgres /home/pgsql
su postgres
initdb -D /home/pgsql
postgres -D /home/pgsql
psql -d postgres -f pgdump

Lingid

http://gentoo-wiki.com/HOWTO_Configure_Postgresql

http://www.postgresql.org/docs/8.1/interactive/install-upgrading.html

http://www.freebsddiary.org/postgresql.php

Eelnevate versioonide võrlustabel

http://www.postgresql.org/about/featurematrix