-
PostgreSQL- konfiguracja i instalacja w CentOS
PostgreSQL to jeden z najpopularniejszych systemów zarządzania relacyjnymi bazami danych. System ma opinie stabilnego i bardzo wydajnego szczególnie w pracy z dużymi bazami lub też hurtowniami danych. Ogromną zaletą jest licencja BSD, która umożliwia stosowanie go również w projektach komercyjnych. Za najlepszą reklamę myślę, że posłużą limity nałożone na silnik bazy danych:
Max rozmiar pola – 1G
Max rozmiar tabeli – 32TB
Max rozmiar bazy danych – nielimitowany
Warto więc zapoznać się z możliwościami jakie daje nam PostgreSQL.
Do uruchomienia potrzebne są dwie paczki, postgresql oraz postgresql-server.
[root@localnet ~]# yum install postgresql postgresql-server
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
…
Installed:
postgresql.i386 0:8.1.18-2.el5_4.1 postgresql-server.i386 0:8.1.18-2.el5_4.1
Complete!
[root@localnet ~]#
W tym momencie SZBD został poprawnie zainstalowany na naszej maszynie, wystarczy go odpalić i poprawnie skonfigurować.
Uruchamiany:
service postgresql start
Jeśli chcemy żeby Postgres startował przy każdym restarcie maszyny
chkconfig postgres on
Następnie należy zalogować się jako user postgres i założyć przykładową bazę danych.
[root@localnet ~]# su – postgres
-bash-3.2$ psql -d template1 -U postgres
-bash-3.2$ exit
[root@localnet ~]# psql -h nasz_adres_IP -U postgres
Welcome to psql 8.1.18, 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
postgres=#
Na dobry początek warto ustawić hasło :
postgres=# ALTER USER postgres with password ‘naszehaslo’;
postgres=#\q
Warto wspomnieć, że terminalowym klientem jest psql. Przygotowano również kilka shell`owych poleceń ułatwiających życie np: createdb, pg_dump,restore, pg_ctl itp.
Przechodzimy do podstawowej konfiguracji. PostgreSQL swoje pliki konfiguracyjne trzyma w /var/lib/pgsql/data gdzie znajdziemy dwa najważniejsze ,czyli pg_hba.conf oraz postgres.conf
Plik pg_hba.conf pozwala na konfiguracje połączeń, schemat jest następujący
TYPE – możliwe opcje to local,host, hostssl, hostnossl,
DATABASE – tu można stawić nazwę bazy danych, opcja all oczywiście dotyczy wszystkich,
USER – login konkretnego user`a lub też all,
CIDR-ADDRESS – adres sieci lub konkretny adres IP z którego umożliwimy nawiązywanie połączeń,
METHOD – metoda autentykacji, do wyboru jest całkiem sporo : trust, reject, md5,krypt, password, krb5, ideat, pam. Opcja trust pozwala na logowanie bez hasła.
Dokładny opis wszystkich opcji oczywiście jest w dokumentacji postgresa.
Przykładowa konfiguracja:
# „local” is for Unix domain socket connections only
host all all 192.168.1.0/16 md5
# IPv4 local connections:
#host all all 127.0.0.1/32 trust
# IPv6 local connections:
#host all all ::1/128 ident sameuser
Drugim ważnym plikiem jest postgres.conf, który będzie przede wszystkich przydatny zaawansowanym użytkownikom. To właśnie tu znajdziemy najważniejsze opcje związane z tuningiem silnika bazy. Warto zwrócić uwagę na linijkę:
listen_addresses = '192.168.1.48′
gdzie możemy wstawić adres IP naszej maszyny. Jeśli zamiast adresu IP wpiszemy ‘ * ’ nasz postgres będzie nasłuchiwał na wszystkich interfejsach sieciowych.( ‘ na początku i na końcu adresu IP są obowiązkowe).
Minusem użycia paczki z repozytorium jest jej starość, w momencie pisania artykułu najnowsza wersja to 8.4.2, a instalowana 8.1.18. Jak widać różnica znaczna.
Do codziennej pracy z bazą polecam pgAdmina, bardzo przystępne narzędzie pozwalające zarówno na administracje jak i czysto programistyczne działania.
Życzę powodzenia!
Wiecej o PostgreSQL na:
chkconfig postgresql on
zamiast
chkconfig postgres on
(centos 5.5, postgres 8.1.22)