Szybka instalacja PostgreSQL na Debianie
Poniższy opis nie jest szczególnie odkrywczy, ale przyda się tym, którzy muszą szybko postawić PostgreSQL, np. na potrzeby pisania projektu z baz danych, gdy uczelniany serwer znów szwankuje. Przy okazji podaję opis prymitywnego testu, który pozwala sprawdzić, czy wszystko ze sobą współgra (bo sama instalacja to w gruncie rzeczy kilka poleceń w terminalu, ewentualnie parę kliknięć). Zatem do dzieła!
Instalujemy postgresql i php5-pgsql (zakładając, że Apache i PHP mamy już działające). Z poziomu roota, wykorzystując uprawnienia użytkownika postgres tworzymy nowego użytkownika bazy (najprościej, jeżeli będzie miał taki login, jak nasz). Hasło ustawiamy wedle uznania:
# su postgres -c "createuser -P użytkownik"
Enter password for new role:
Enter it again:
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n
Teraz tworzymy testową bazę, by sprawdzić, czy całość nam działa:
$ createdb testowa
$ psql -d testowa
Welcome to psql 8.3.1, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
testowa=>
OK, PostgreSQL śmiga. Upewnijmy się, że PHP może się z nim porozumieć. Tworzymy tabelę:
testowa=> create table test(raz int, dwa int);
testowa=> insert into test values(1,5);
testowa=> insert into test values(2,3);
Tworzymy plik /var/www/html/test_bazy.php:
<?php
echo "Test.<br />";
$polaczenie = pg_connect("host=localhost port=5432 dbname=testowa user=użytkownik password=nasze_haslo");
$wynik = pg_exec($polaczenie,"select * from test");
$tablica = pg_fetch_all($wynik);
echo "Zapytanie zwrocilo:<br />";
foreach ($tablica as $wiersz)
foreach ($wiersz as $kolumna => $wartosc)
echo "$kolumna => $wartosc<br />";
?>
Pod adresem http://localhost/html/test_bazy.php powinniśmy ujrzeć taką oto pozbawioną sensu stronę:
Test.
Zapytanie zwrocilo:
raz => 1
dwa => 5
raz => 2
dwa => 3
Jeżeli pojawia się jakiś błąd, poszukiwania polecam zacząć od próby ręcznego połączenia się z bazą:
$ psql -d testowa -h localhost -p 5432 -U użytkownik
Warto zauważyć, że czasem localhost należy zastąpić adresem komputera w sieci; zależy to zapewne od jakichś specyficznych konfiguracji.

wtorek, 31 marca 2009 @ 23:08
wielkie dzięki