Webcity.pl


  Generowanie dokument...

  Piszemy klienta pocz...

  Dokumentowanie kodu ...

  Pierwsze kroki w świ...

  Bazy danych SQLite w...

 

 02.02.06 - [new] E-video - artykuł

 30.01.06 - [update] Artykuł o sesjach

 18.12.05 - [update] PDO - artykuł

 19.08.05 - [new+upd] Aktualizacja materia...

 26.04.05 - [update] Nowy artykuł



  Pomocy WML
[php]Sesje nie działają, ...
[actionscript 2.0] [flash...
Problem z talicami w php
[ocena] llll.pl darmowe a...
Kamera na stronie interne...
Kamera na stronie interne...
[xml] Jak wyciągnąć dane
Wizualizacja w JS - POMOC
Web Developer - stała / f...

... i wiele innych wątków na forum ›

Partnerzy
› allRSS.info - katalog zasobów RSS
› iloveflyer.org - webdesign
› webserv.pl - serverpack
› skryptoteka.pl - mnóstwo skryptów
› vel.pl - hosting
› TelePraca.net - pracuj swobodnie
› PHP Solutions - magazyn PHP
› HELION - wydawnictwo informatyczne

Ksišżka dnia

CityMag
Wpisz swój e-mail, aby zaprenumerować nasz Magazyn, który zawiera najnowsze informacje ze świata i najciekawsze teksty.
 

Szukasz czegoś?
Nasza wyszukiwarka znajdzie wszystko, czego szukasz.
 

Szukanie zawansowane


  Reklama
  Redakcja
  Hosting
  Kanał

© WebCity.pl Team
 
 
  Forum Forum
Kursy Kursy
Porady Porady
Recenzje Recenzje
Newsy Newsy
Katalog stron WWW Katalog
Skrypty PHP Skrypty
Download Oferty i praca
Artykuły:
 Teoria
 Praktyka
 Promocja
 Inne
 

 Webcity.pl |

Instalacja bazy danych PostgreSQL

Autor: Zyx
   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:
   - Możliwość zagnieżdżania zapytań SELECT w sobie nawzajem (MySQL będzie to obsługiwał dopiero od wersji 4.1)
   - Możliwość definiowania własnych typów pól
   - Pełne wsparcie dla kursorów i widoków.
   - Możliwość tworzenia własnych funkcji, procedur, oraz triggerów za pomocą kilku popularnych języków, a także jednego specjalnie dedykowanego: PL/pgSQL będącego potężnym rozszerzeniem języka SQL.
   - Pełne wsparcie dla transakcji.
   - Możliwość blokowania na poziomie bazy.

   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


   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.

   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.

Powrót