Instalacja bazy danych PostgreSQL

Autor: Tomasz Jędrzejewski
Data publikacji: 03.11.2003, 13:52 | Ostatnia modyfikacja: 29.10.2006, 15:57

Bazy danych PostgreSQL nie cieszÄ… siÄ™ wielkÄ… popularnoÅ›ciÄ… w naszym kraju. Jednym z powodów jest maÅ‚a liczba informacji o nich w naszym rodzimym jÄ™zyku. ArtykuÅ‚ ten pokazuje, jak zainstalować i skonfigurować PostgreSQL do pracy.



Prawie zawsze, gdy instalujemy u siebie serwer WWW, nieważne, czy ma on sÅ‚użyć do testowania, czy do postawienia serwisu internetowego, na bazÄ™ danych wybierany jest program MySQL. Jego niezaprzeczalnÄ… zaletÄ… jest prostota instalacji i konfiguracji. Przed podjÄ™ciem takiej decyzji, warto jednak zapoznać siÄ™ z konkurencjÄ…. Szczególnie ciekawy jest serwer PostgreSQL, bÄ™dÄ…cy nastÄ™pcÄ… programu postgres stworzonego kilkanaÅ›cie lat temu na Uniwersytecie Kalifornijskim w Berkeley przez Michaela Stonebrakera. Rozwijany jest wiÄ™c znacznie dÅ‚użej, niż inne serwery baz. ZaowocowaÅ‚o to m.in tym, iż jest jedynym open-source'owym systemem baz danych, który w peÅ‚ni obsÅ‚uguje caluteÅ„kÄ… specyfikacjÄ™ jÄ™zyka SQL (ANSI SQL 98), dziÄ™ki któremu możemy wprowadzać, manipulować i segregować potrzebne nam informacje. Jest przy tym bardzo szybki i bezpieczny. Chyba gÅ‚ównym powodem, dla którego nie jest on popularny wÅ›ród administratorów, jest stosunkowo zÅ‚ożony proces instalacji, oraz trudnoÅ›ci w stawianiu programu na systemach Win32. ProszÄ™ siÄ™ jednak nie martwić, artykuÅ‚ ten powinien rozwiać wszystkie te wÄ…tpliwoÅ›ci.

Możliwości PostgreSQL'a

Wiele rozwiÄ…zaÅ„ stosowanych w najpopularniejszych obecnie systemach baz danych zostaÅ‚o stworzonych przez twórców PostgreSQL'a. Postarali siÄ™ oni także, by byÅ‚ on w peÅ‚ni zgodny ze specyfikacjÄ… ANSI SQL 98, co oznacza, iż każde zapytanie SQL stworzone wedle tej specyfikacji bÄ™dzie mogÅ‚o być bez powikÅ‚aÅ„ uruchomione na serwerze. Pod wzglÄ™dem możliwoÅ›ci wyprzedza MySQL'a o caÅ‚e lata Å›wietlne. Oto niektóre z nich:

Do góry

Instalacja na systemach UNIX

Mamy dwie możliwoÅ›ci instalacji PostgreSQL'a: z pakietów, albo ze źródeÅ‚. W tym pierwszym przypadku należy oczywiÅ›cie najpierw pobrać odpowiedni pakiet RPM i zainstalować go wydajÄ…c w konsoli polecenie:

rpm -Uvh postgres.7.0.rpm

Instalator skopiuje pliki programu na swoje miejsce (czyt. porozstrzeliwuje je po twoim systemie plików :)), a konfiguracjÄ™ i bazy danych umieÅ›ci w katalogu "/var/lib/pgsql/". Dodatkowo mogÄ… wystÄ…pić problemy przy instalowaniu graficznego klienta Postgresa, jeÅ›li wystÄ…pi błąd w bibliotece Tcl. Gdy chcemy mieć peÅ‚nÄ… kontrolÄ™ nad instalacjÄ…, należy siÄ™gnąć oczywiÅ›cie do źródeÅ‚ :). Jeżeli posiadasz zainstalowanego wczeÅ›niej PostgreSQL'a, upewnij siÄ™, czy proces "postmaster" na pewno nie jest uruchomiony. Dopiero teraz można przejść do skonfigurowania kodu źródÅ‚owego:

./configure --with-tcl

Gdy chcemy uzyskać pełną listę opcji konfiguracyjnych, wpisujemy "./configure --help".

Po konfiguracji przychodzi kolej na kompilacjÄ™ i instalacjÄ™ poleceniami:

make
make install

W przypadku posiadania wczeÅ›niejszej wersji programu, skasowaniu ulegnie stara biblioteka libpq. Warto utworzyć do niej symboliczne dowiÄ…zanie, by można byÅ‚o bez problemów korzystać z wiÄ™kszoÅ›ci aplikacji (oczywiÅ›cie instalujÄ…c PgSQL na czysto, nie musisz tego robić):

ln -s libpq.so.2.0 libpq.so.2.0

Cyfry podmieniamy na odpowiednie numery wersji.

Kolejnym krokiem jest upewnienie siÄ™, czy instalator nie utworzyÅ‚ konta użytkownika "postgres". Gdy go brakuje, trzeba je utworzyć samemu, nadajÄ…c mu przy tym uprawnienia zwykÅ‚ego użytkownika. Na koÅ„cu musisz dopisać albo do pliku .bash_profile w katalogu programu (domyÅ›lnie /usr/local/pgsql), albo do /etc/rc.d/rc.sysinit nastÄ™pujÄ…cych linijek (Å›cieżki podmieniamy na te, które wystÄ™pujÄ… w naszym systemie):

PATH=$PATH:/usr/local/pgsql/bin
MANPATH=$MANPATH:/usr/local/pgsql/man
PGLIB=/usr/local/pgsql/lib
PGDATA=/usr/local/pgsql/data
export PATH MANPATH PGLIB PGDATA

Musimy jeszcze zainicjować bazy danych poleceniem "initdb", by utworzyć odpowiednią strukturę katalogową. Teoretycznie serwer jest już gotowy do pracy. Jeśli chcesz, by postmaster uruchamiał się automatycznie, przjedź do katalogu /contrib/linux/ i uruchom plik postgres.init.sh z parametrem "-install". Jednak przed instalacją należy wykonać kilka dodatkowych czynności, opisanych wewnątrz skryptu. Oto komenda startująca:

postmaster -D /usr/local/pgsql/data

Do góry

Instalacja na systemach Win32

Niestety wersja PostgreSQL'a dla Windows jako tako nie istnieje. Musimy albo Å›ciÄ…gnąć 30 MB źródeÅ‚, a potem 15 MB kompilatora Cygwin (czego nie polecam), albo... poszukać czegoÅ›, co nazywa siÄ™ "PostgreSQL Native Windows Port". Zazwyczaj sÄ… to archiwa ZIP, o wielkoÅ›ci 4, 5 MB, praktycznie gotowe do uruchomienia. SÄ… co prawda lekko opóźnione w stosunku do najnowszych edycji (obecna wersja serwera to 7.3.3, tymczasem w postaci portów można znaleźć najwyżej 7.2.2), ale w koÅ„cu lepsze to, niż nic. Aby je znaleźć, należy włączyć Google i wpisać "PostgreSQL Native Windows Port". Za jakiÅ› czas postaram siÄ™ wrzucić jeden z takich portów na serwer Webcity (wersja 7.2.1), by oszczÄ™dzić wiÄ™kszoÅ›ci szukania.

UPDATE: ZnalazÅ‚em w internecie na jednym z polskich FAQ'ów tenże port. Oto adres: http://pgsql.spsk1.pl/postgresql-winnative.html. MiÅ‚ego Å›ciÄ…gania :).

Sposobów instalowania portów Windows'a jest mnóstwo, zawsze jednak opisane s w pliku Readme.txt. PodajÄ™ jeden z nich (a nuż ktoÅ› znajdzie ten wÅ‚aÅ›nie plik :) - prosiÅ‚bym o natychmiastowy kontakt :)).

1. Utwórz sobie katalog "pgsql" gdzieÅ› na dysku.
2.Otwóz archiwum ZIP i skopiuj do niego zawartość katalogu "postgres_beta4".
3. Dopisz następujące linijki do pliku autoexec.bat:

set PGHOME=d:\usr\pgsql
set PGDATA=%PGHOME%\data
set PGLIB=%PGHOME%\lib
set PGHOST=localhost
set PATH=%PGHOME%\bin;%PATH%

Wartość zmiennej PGHOME zamień na ścieżkę do twojego katalogu z PostgreSQL'em.
4. Uruchom autoexec.bat, by ustawić ww. zmienne.
5. Uruchom wiersz poleceń, przejdź do katalogu pgsql/bin i wydaj polecenie "initdb". Program poinformuje Cię, jak należy prawidłowo wywołać program serwera postmaster.
6. Uruchom serwer (postmaster -D c:/sciezka/do/pgsql/data), a okno zostaw włączone.

Do góry

Konfigracja poinstalacyjna programu

Po instalacji zostało nam skonfigurować serwer. Pliki konfiguracyjne znajdują się w katalogu z danymi (Unix: /var/lib/pgsql; Win: c:/sciezka/do/pgsql/data). My zajmiemy się tylko postgresql.conf. Zapewne nie będziesz chciał korzystać z bazy tylko poprzez konsolę, ale także użyć jej do np. tworzenia serwisów WWW. W takim wypadku musisz usunąć znaczek # z następujących linii:

#tcpip_socket = true #port = 5432

Pierwsza dyrektywa definiuje możliwość połączenia się za pomocą wejścia TCP/IP, lecz aby z niej skorzystać, należy odpalić postmastera z parametrem -i. Będziesz także musiał zająć się plikiem pg_hba.conf, by określić hosty mające dostęp do bazy (większość tego pliku to komentarz, jak to robić - my zajmiemy się tym wszystkim kiedy indziej).

Kolejnym etapem inicjacji jest stworzenie użytkownika i bazy danych. Włącz konsolę, przejdź do katalogu pgsql/bin i wydaj takie polecenie:

createuser nazwa_uzytkownika

Program zapyta Cię, czy nowy użytkownik może tworzyć nowe bazy danych (potwierdź), a następnie czy ma prawo tworzyć innych użytkowników. Po odzyskaniu możliwości wpisywania poleceń, trzeba będzie utworzyć jeszcze odpowiednią bazę danych:

createdb -U nazwa_uzytkownika nazwa_bazy

Użytkownik określony parametrem -U musi mieć możliwość tworzenia baz.

Aby zapoznać się z możliwościami PostgreSQL'a, przejdź do katalogu /pgsql/bin i uruchom z niego program "psql" w następujący sposób:

psql -U nazwa_uzytkownika nazwa_bazy

Jeśli wszystko poszło zgodnie z planem, zostaniesz przeniesiony do interaktywnej konsoli (obsługuje ją się dosyć podobnie do tej w MySQL'u, więc część osób na pewno nie będzie miała problemów z przesiadką), w której możesz wpisywać polecenia języka SQL. Znakomitym źródłem wiedzy o nim jest dokumentacja PostgreSQL'a (niestety tylko po angielsku), którą znajdziemy na stronie www.postgresql.com.

Autor: Tomasz "Zyx" Jędrzejewski, www.zyxist.com

Do góry

Waszym zdaniem:

Nikt jeszcze nie dodał swojego komentarza. Możesz być pierwszy!


Twoim zdaniem:

Reklama

banner

Partnerzy

CityDesign.pl
phpSolutions