Migracija sa MySQL-a na PostgreSQL

From RCUB
Jump to: navigation, search
(dodata tabela mysql -> psql komandi)
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;
 
−
 
−
===Kratka myslq -> psql tabela===
 
−
{| class="wikitable" border="1"
 
−
|-
 
−
! 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>
 
−
|}
 
−
<ref>http://trac.biostr.washington.edu/trac/wiki/PostgreSql</ref>
 
−
 
−
==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
 
−
 
−
==Spoljašne veze==
 
−
* [http://trac.biostr.washington.edu/trac/wiki/PostgreSql lista psql komandi]
 

Latest revision as of 12:03, 14 May 2009

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox