Migracija sa MySQL-a na PostgreSQL

From RCUB
Jump to: navigation, search
(Konfigurisanje servera)
(Izdvojio globalnu postgresql pricu na posebnu stranu)
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;
 
 
===Kratka myslq -> psql tabela===
 
{| class="wikitable" border="1" style="background:#F3F3F3"
 
|-
 
! MySQL <code>mysql</code>
 
! PostgreSQL <code>psql</code>
 
|-
 
| <code>SHOW COLUMNS;</code>
 
| <code>\d ''table-name''</code>
 
|-
 
| <code>SHOW DATABASES;</code>
 
| <code>\l</code>
 
|-
 
| <code>SHOW PROCESSLIST;</code>
 
| <code>SELECT * FROM pg_stat_activity;</code>
 
|-
 
| <code>SHOW TABLES;</code>
 
| <code>\d</code>
 
|-
 
| <code>SHOW USERS;</code>
 
| <code>\du</code>
 
|-
 
| <code>USE ''db-name'';</code>
 
| <code>\c ''db-name''</code>
 
|}
 
[http://trac.biostr.washington.edu/trac/wiki/PostgreSql]
 
 
==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:
 
 
  sudo -u postgres pg_ctl reload -D /var/lib/pgsql/data/
 
 
==Spoljašne veze==
 
* [http://trac.biostr.washington.edu/trac/wiki/PostgreSql lista psql komandi]
 

Revision as of 12:03, 14 May 2009

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox