Migracija sa MySQL-a na PostgreSQL

From RCUB
Jump to: navigation, search
m (Konfigurisanje servera)
m
 
Line 1: Line 1:
Timovi koji imaju nameru da MySQL zamene sa PostgreSQL-om, ovaj dokument mogu da koriste kao polaznu osnovu. PostgreSQL se čita kao "Postgres Kju El" ili samo "Postgres".
+
Timovi koji imaju nameru da MySQL zamene sa PostgreSQL-om, ovaj dokument mogu da koriste kao polaznu osnovu. PostgreSQL se čita kao "Postgres Kju El" ili samo "Postgres". Takodje, pogledajte stranicu [[PostgreSQL]]
 
+
==JDBC parametri konekcije za PostgreSQL==
+
 
+
JDBC connection string je oblika:
+
 
+
  jdbc:postgresql://server.rcub.bg.ac.yu/baza
+
 
+
Default port je 5432, a drajver je:
+
 
+
  org.postgresql.Driver
+
  
 
==Promene na aplikaciji==
 
==Promene na aplikaciji==
Line 36: Line 26:
 
Vrlo površno merenje pod koliko-toliko ravnopravnim uslovima (isti  
 
Vrlo površno merenje pod koliko-toliko ravnopravnim uslovima (isti  
 
server, isti skup podataka, isti upit, deset ponavljanja) je pokazalo +30% u brzini u korist Postgresa.
 
server, isti skup podataka, isti upit, deset ponavljanja) je pokazalo +30% u brzini u korist Postgresa.
 
==Hijerarhija==
 
 
Hijerarhija u Postgresu je baza, šema, tabela.
 
JDBC string za konekciju prima kao parametar samo ime baze, a ne i šemu.
 
Tako da je verovatno najlakše kreirati posebne baze i koristiti njihove
 
default "public" šeme.
 
 
==PSQL komande==
 
 
'''psql''' je linux konzolni SQL klijent. Pokretanje iz klijenta kao '''root''' će vam verovatno prourokovati
 
poruku o grešci
 
 
psql: FATAL:  database "root" does not exist
 
 
Jer '''psql''' pokusava da otvori bazu koja ima isti naziv kao i korisnik, a koja ne postoji. Zbog toga je potrebno prvo se
 
prebaciti na korisnika postgres sa
 
 
  su - postgres
 
 
i zatim pozvati '''psql'''.
 
 
Komande koje vam mogu biti od interesa:
 
 
\l - listanje baza podataka
 
\c - izbor aktivne baze podataka
 
\dn - listanje svih sema u izabranoj bazi
 
\dt - listanje svih tabela
 
\du - listanje svih korisnika
 
 
Kreiranje baze:
 
 
CREATE DATABASE "TestBaza" WITH ENCODING='UTF8';
 
 
Kreiranje korisnika:
 
 
CREATE USER username PASSWORD 'l0zinka';
 
 
Izbor baze:
 
 
\c TestBaza
 
 
Dodeljivanje privilegija nad default "public" šemom.
 
 
GRANT ALL ON SCHEMA public TO username;
 
 
==Konfigurisanje servera==
 
 
Da biste omogućili pristup serveru preko JDBC-ja odnosno TCP/IP-ja,
 
potrebno je da u '''data/postgresql.conf''' (najčešće u /var/lib/psql) navedete:
 
 
  listen_addresses = '*'          # what IP address(es) to listen on;
 
  port = 5432                    # (change requires restart)
 
 
i da u '''data/pg_hba.conf''' dodate:
 
 
  # TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
 
  host    mydb        ognjen      147.91.4.123/32      md5
 
 
posle promena na kofiguracionim fajlovima potrebno je da restartujete server ili da kao korisnik '''postgres''' pozovete reload konfiguracije:
 
 
  pg_ctl reload
 

Latest revision as of 12:03, 14 May 2009

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox