quinta-feira, 3 de outubro de 2013

Kio estas PostgreSQL?

PostgreSQL

PostgreSQL estas potenca datumbaza motoro, kiu havas karakterizaĵojn kaj funkciojn ekvivalentajn al multaj direktistoj de komercaj datumbazoj. Estas pli kompletaj ol MySQL ĉar ĝi permesas stokitajn metodojn, integrecajn devigojn, vidpunktoj, ktp. kvankam en la lastaj versioj de MySQL faris grandajn paŝojn en tiu direkto.

  

Instalado

En Ubuntu disponeblaj pakoj por multnombraj PostgreSQL versioj: 7.4, 8.0, 8.1 kaj 8.2 por instali la plej lastan version, se vi bezonas iun supre. La pakoj bezonataj por kompleta instalado estas tiuj de la kliento (PostgreSQL-kliento-8.2) kaj la servilo flanko (PostgreSQL-8.2). La kliento komputilo kiu ni uzas kiel ni nur bezonas la kliento pakoj. Recomentable ankaŭ instali grafikan kliento kiu havigos la interago kun la servanto. Grafika kliento estas bona pgAdmin III , kiu funkcias tre bone.
Se vi dubas ke vi bezonas, vi povas instali la tri pakojn:
  $ Ŝvitas aptitude install PostgreSQL-8.2 PostgreSQL-kliento-8.2 pgadmin3
Dosiero: Noto clasica.png Memoru malinstali ajnan version de PostgreSQL vi ne bezonas ne tuŝos la agadon de via sistemo.
Pro sekurecaj kialoj establi la novan pasvorton al la sistemo kreita de PostgreSQL
  $ sudo passwd Postgres
Ŝanĝi aliro privilegiojn Postgres uzanto ŝelon kun la sekva komando:
  $ sudo vipw
Kaj ŝanĝi la Postgres uzanto konko "/ bin / malvera" al "/ bin / bash". Tiam ni iris al gravuri kun ellasilo ": wq". Por kontroli, ke la instalado sukcesis ni aliri la servilon konko datumbazo:
  $ sudo su Postgres-c "psql template1"
Se aliro estis sukcesa ŝanĝis la pasvorton por la uzanto defaŭlta datumbazo servilo:
   template1=# ALTER USER postgres WITH PASSWORD 'nueva_contraseña';
Vi ricevos la sekvan mesaĝon konfirmante la transakcio:
  Alter ROLO
Eliro la ŝelo datumbazo servilo kun la ordono \ q:
  template1 = # \q
  

Agordo

  

Permesu fora rilatoj

Pro sekurecaj kialoj, la defaŭlta agordo ne permesas eksteraj rilatoj. Por tio, vi devas redakti / etc/postgresql/8.2/main/postgresql.conf.
  $ sudo gedit / etc/postgresql/8.2/main/postgresql.conf
Nun serĉi la sekvaj linioj estas dirita:
  # Listen_addresses = 'localhost'
Kaj anstataŭigi ĝin per la jena linio:
  listen_addresses = '*'
Tiam serĉi la sekva linio kaj forigi la komento marko:
  # Password_encryption = en
Kaj ni devus esti la jenaj:
  password_encryption = en
Konservi la ŝanĝojn kaj restartu la domajno por ke la ŝanĝoj efektiviĝos:
  $ sudo /etc/init.d/postgresql-8.2 rekomencos
  

Agordi la aliro listo

La agordo de la aliro listo povas diri al PostgreSQL kiu aŭtentokontrolo metodo por uzi kaj konstrui konfidon por iuj maŝinoj kaj retoj. Vi devas redakti la dosieron / etc/postgresql/8.2/main/pg_hba.conf:
  $ Ŝvitas vidis / etc/postgresql/8.2/main/pg_hba.conf
Fine de la dosiero estas listo de defaŭlta aliro, nun, depende de via bezono oni povas fari la sekvaj:
  • Se vi bezonas ajna uzanto por konekti tra specifa IP-adreso, aldonu la sekvan linion en la fino:
  gastigas ĉiujn ĉiuj 192.168.1.4 255.255.255.0 md5
Dosiero: Noto clasica.png La IP-adreso kaj subreto masko estas ekzemploj, anstataŭigi per uzanto datumojn kiuj postulas konektanta.
  • Se vi bezonas ajna uzanto konektas tra aparta IP sendepende de la pasvorton (ni fidas tiun IP), la linio estas:
  gastigas ĉiujn ĉiuj 192.168.1.4 255.255.255.255 konfido
  • Se vi bezonas ajna uzanto (uzanto autenticando datumbazo, kompreneble) estas koneksa per iu IP-adreso, aldonu la sekvan linion en la fino:
  gastigas ĉiujn ĉiuj 0.0.0.0 0.0.0.0 md5
  • Se aparta uzanto bezonas konekti al aparta datumbazo uzante specifan IP-adreso, aldonu la sekvan linion en la fino:
  MyUser MyDatabase gastiganto 192.168.1.4 255.255.255.0 md5
  • Savas ŝanĝoj faritaj al la arkivo kaj restartu la demono por la ŝanĝojn preni efekto:
  $ Ŝvitas / etc/init.d/postgresql-8.2 rekomencos
  

Uzante Direktado

PostgreSQL uzantoj havas kelkajn kapablojn kiuj difinas en lia kreado. Mi volas diri ke uzanto povas aŭ ne povas krei pli da uzantoj kaj uzanto povas aŭ ne krei datumbazojn. En la ekzemplo vi povas vidi sube ni kreas uzanton kiu ne povas krei pli da uzantoj (ne administranto) sed povas krei pli datumbazojn. La-P kaŭzas al ni por peti la pasvorton vi atribuas al la uzanto. Alie la uzanto estos kreita sen pasvorto.
 
$ createuser -A -d -P -h host -U usuario nuevo_usuario
Enter password for user "nuevo_usuario":
Enter it again:
 Kiel diskutis pli supre, estas administrantoj uzanto (povas krei aliajn uzantojn). Evidente ĉi komando devas esti ekzekutita de uzanto kun tiu trajto.
Simile oni povas forviŝi uzanto tiamaniere:
  $ Dropuser-h gastiganto-Aŭ uzanto usuario_borrar
  

Rezerva

Por subteni datumbazo havas jena komando:
  $ Pg_dump-h gastiganto-Aŭ uzanto db_name> nombre_bd.sql
Por fari restaŭrkopion de ĉiuj PostgreSQL datumbazoj de servilo, uzu ĉi tiun skripton ankaŭ:
  #/bin/bash
  ## BEGIN config # #
  Host = localhost
  BACKUP_DIR = tmp
  ## End config # #
 
  if [!  BACKUP_DIR-d], then
    mkdir-p $ BACKUP_DIR
  fi
 
  POSTGRE_DBS = $ (psql-h $ HOST-Aŭ Postgres-l | awk '(NR> 2) && (/ [a-za-Z0-9] + [] + [|] /) && ($ 0! ~ / Ŝablono [0-9] /) {print $ 1} ');
 
  for DB in $ POSTGRE_DBS, faru 
    eĥo "* datumoj de PostgreSQL Backuping $ DB @ $ HOST ..."
    pg_dump-h $ HOST-Aŭ Postgres $ DB> $ BACKUP_DIR / pg_ $ DB. SQL
  farita 
Por restarigi backup:
  psql-d dbname-f archivo.pgdump
 

Vidu ankaŭ

  

Eksteraj Ligiloj