Instalujemy PostgreSQL na Debianie Lenny

Odgrażałem się chyba z 10 razy, że w końcu zainstaluję PostgreSQL, aby podpiąć pod ten system bazodanowy swoje aplikacje. Lata płyną 🙂 zaś PostgreSQL ani widu, ani słychu. Przy okazji tworzeniu nowego projektu i zabaw z Mavenem przyszedł czas i na bazę.

Mój VPS posiada zainstalowanego MySQLa, który służy nie tylko do obsługi moich aplikacji, ale też trzymania wiki, czy Kulturalnego Chlebika. W tym wpisie opiszę jak przebiega instalacja oraz konfiguracja PostgreSQL na serwerze z Debianem Lenny i jak to poskładać do kupy, aby dobrze działało. Wpierw rzecz jasna trzeba odpowiedzieć sobie na pytanie jaką wersję RDBMSa instalujemy. W sumie najbardziej “nową” wersją jest ta oznaczona numerkiem 8.4. Jednakże moja polityka dotycząca nowych wersji jest powszechnie znana, a co więcej, w tym przypadku jest wspierana tym, iż w repozytoriach Debiana znalazłem gotowy pakiet z wersją 8.3. Po części system zadecydował za mnie. Uruchamiamy zatem apta:

sudo apt-get install postgresql-8.3

Apt pomieli swoje i na końcu całego listingu zobaczyłem takie oto dobre rzeczy:

Creating new cluster (configuration: /etc/postgresql/8.3/main, data: /var/lib/postgresql/8.3/main)…
Moving configuration file /var/lib/postgresql/8.3/main/postgresql.conf to /etc/postgresql/8.3/main…
Moving configuration file /var/lib/postgresql/8.3/main/pg_hba.conf to /etc/postgresql/8.3/main…
Moving configuration file /var/lib/postgresql/8.3/main/pg_ident.conf to /etc/postgresql/8.3/main…
Configuring postgresql.conf to use port 5432…
Starting PostgreSQL 8.3 database server: main.

Informacje o utworzeniu nowego klastra plus pojawienie się plików konfiguracyjnych są bardzo dobre – w necie znalazłem informacje, że zdarzały się przypadki ‘niepełnej’ instalacji z paczek, co skutkowało koniecznością dziwnych zabaw z samą bazą i jej skryptami konfiguracyjnymi lub uruchomieniowymi. W moim przypadku jak widać wszystko poszło OK i serwer PostgreSQL został uruchomiony. Wypada przyjrzeć się choć trochę konfiguracji – otwieramy plik postgresql.conf, który znajdziemy w katalogu wskazanym przy instalacji (u mnie jest to /etc/postgresql/8.3/main ). Jest on dość duży i rozbudowany, ale ten wpis nie jest o tuningowaniu PostgreSQL dlatego na razie odpuścimy sobie większość rzeczy poza wartościami zmiennych timezone oraz datastyle. Zgodnie z zaleceniami powinny one wyglądać tak:

datestyle = 'European, German'
timezone = Poland

Choć to w sumie duperel. Istotne jest to, aby móc łączyć się z bazą z dowolnego miejsca. W pliku konfiguracyjnym odnajdujemy zmienną listen_addresses i jeśli jest inaczej to ustawiamy jej wartość na ‘*’ (czyli na wszystkie możliwe interfejsy). Zamykamy plik. PostgreSQL domyślnie tworzy użytkownika o nazwie postgres, ale lepiej zostawić go w spokoju, za to do łączenia się z bazą lepiej stworzyć oddzielnego użytkownika, albo użyć jednego z istniejących – głównie dla bezpieczeństwa (ograniczenie dostępu lub różne prawa). Edycji poddajemy plik ph_hba.conf, który znajduje się tam gdzie główny plik konfiguracyjny. Dopisujemy tam następującą linijkę:

host all chlebik 0.0.0.0 0.0.0.0 password

Co oznacza tyle, że można połączyć się z serwerem bazy danych spoza serwera macierzystego używając do zalogowania użytkownika o nazwie chlebik. Dla łatwości również stworzymy nową bazę danych dla tych połączeń:

su
su postgres
createuser -a -d -P -e -W chlebik
createdb -e -E UTF-8 -O chlebik chlebik

Restartujemy serwer. Teraz wypadałoby sprawdzić czy nasze zabiegi przyniosły jakikolwiek efekt:

su
su postgres
psql template1
\du

I powinniśmy zobaczyć chlebika jako jednego z użytkowników bazy. Skoro tak to pewnie dałoby się zalogować jako chlebik i przy okazji zobaczyć co tam słychać w naszej bazie (pamiętajmy, że utworzyliśmy właśnie nową dla tego użytkownika ).

psql -U chlebik -h localhost chlebik

Logujemy się jako user chlebik do bazy danych o nazwie również ‘chlebik’ znajdującej się na lokalnej maszynie. Zostaniemy poproszeni o hasło. Jeśli wszystko jest OK to zostaniemy zalogowani do konsoli psql-a, gdzie możemy dla przykładu wydać takie polecenie:

\dt

Co powinno doprowadzić do pojawienia się komunikatu No relations found. Trudno by cokolwiek znaleziono – w końcu baza danych jest czysta jak pierwszy śnieg. Jednakże proces logowania przebiegł pomyślnie i wypada się z tego cieszyć. Jednakże to jeszcze nie koniec – połączenie z serwera jest dobre – na pewno nasze aplikacje na nim wdrożone uruchomią się bez problemów. Jednakże ustawialiśmy możliwość łączenia się z bazą spoza serwera. Teraz przetestujemy tę możliwość – ja wybralem do tego program PgAdmin, który mam na dysku, gdyż lokalnie na maszynie developerskiej posiadam zainstalowanego PostgreSQL. Wpisujemy dane i oto mamy:

Advertisements

2 thoughts on “Instalujemy PostgreSQL na Debianie Lenny

  1. chlebik Post author

    Depesz to postac legendarna 🙂 Bloga rzecz jasna mam w RSSach, ale zgodzmy sie, ze tez Jego poziom to troche wyyyyzej niz moj. Tak na poczatek dobry tutorialek o instalacji na pewno sie przyda.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s