Archiwa kategorii: PostgreSQL

Baza danych PostgreSQL. Open Source.

Instalacja PostgreSQL 8.3 w Ubuntu 8.04

Poradnik ten jest kompilacją trzech anglojęzycznych stron:

  1. Install PostgreSQL on Ubuntu 8.04 at hocuspokus
  2. PostgreSQL – Community Ubuntu Documentation
  3. PostgreSQL

UWAGA:
Jeżeli podczas korzystania z tego przewodnik pojawiają się błędy to spróbujcie zastąpić we wszystkich miejscach frazę

sudo su

tym

su -u

Mi działa w postaci oryginalnej lecz podobno fraza sudo su jest nieprawidłowa i może powodować błędy.

Zaczynamy od instalacji podstawowych pakietów:

$ sudo apt-get update
$ sudo apt-get install postgresql postgresql-client postgresql-contrib
$ sudo apt-get install pgadmin3

Mamy zainstalowaną bazę danych – klient/serwer, kilka przydatnych skryptów oraz pgAdmin z interfejsem graficznym do zarządzania bazą.
Następnie musimy zmienić hasło konta administratora – ‚postgres’ – na serwerze bazy danych. Należy użyć poniższych komend zamieniając ‚hasło’ na hasło jakie chcecie nadać dla tego konta:

$ sudo su postgres -c psql
postgres=# ALTER USER postgres WITH PASSWORD 'hasło';
postgres=# \q

‚postgres=#’ jest to znak zachęty klienta bazy PostgreSQL i nie należy go kopiować i wstawiać do konsoli. Te zmiany wpływają tylko na hasło dostępowe do bazy dla użytkownika ‚postgres’ (administratora). Musimy także zmienić hasło dla użytkownika ‚postgres’ w naszym ulubionym systemie *nix’owym. Najpierw kasujemy hasło użytkownika i następnie nadajemy mu nowe hasło:

$ sudo passwd -d postgres
$ sudo su postgres -c passwd

Hasło może być oczywiście takie samo jak użyte wcześniej.

Od tej pory możemy używać pgAdmin3 z graficznym interfejsem użytkownika bądź konsoli (jako użytkownik postgres) do zarządzania bazą danych. Przed użyciem pgAdmin3 należy ustawić dla bazy PostgreSQL admin pack’a aby cieszyć się lepszym monitorowaniem bazy oraz lepszymi logami:

$ sudo su postgres -c psql < /usr/share/postgresql/8.3/contrib/adminpack.sql

Aby móc używać naszej bazy zdalnie musimy otworzyć nasz serwer na odrobinę świata. Jeżeli chcesz tylko używać serwera lokalnie możesz pominąć te kroki.
Naszym ulubionym edytorem edytujemy plik postgresql.conf:

$ sudo gedit /etc/postgresql/8.3/main/postgresql.conf

W sekcji ‚Connections and Authentication’ zmieniamy:

#listen_addresses = 'localhost'

na

listen_addresses = '*'

oraz

#password_encryption = on

na

password_encryption = on

Zapisujemy i wychodzimy.
Ostatni krok to zdefiniowanie kto może się połączyć z naszym serwerem. Edytujemy plik pg_hba.conf:

$ sudo gedit /etc/postgresql/8.3/main/pg_hba.conf

Zawartość pliku komentujemy bądź usuwamy (ewentualnie zmieniamy) i wklejamy następujący wpis.

# DO NOT DISABLE!
# If you change this first entry you will need to make sure that the
# database
# super user can access the database using some other method.
# Noninteractive
# access to all databases is required during automatic maintenance
# (autovacuum, daily cronjob, replication, and similar tasks).
#
# Database administrative login by UNIX sockets
local   all         postgres                          ident sameuser
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
 
# "local" is for Unix domain socket connections only
local   all         all                               md5
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               md5
 
# Connections for all PCs on the subnet
#
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
host    all         all         [adres ip]          [maska podsieci]  md5

W ostatniej linii wpisujemy maskę naszej podsieci (np. 255.255.255.0 – dane możemy uzyskać z naszego rutera) oraz ip komputera np. 192.168.2.4, który będzie mógł korzystać z naszego serwera. Nic nie stoi na przeszkodzie podanie zamiast jednego adresu ip zakresu adresów (dodanie 0 na końcu adresu ip) ip np. 192.168.2.0 pozwoli na połączenia komputerów o ip 192.168.2.X.

Następnie pozostaje nam tylko restart serwera PostgreSQL:

$ sudo /etc/init.d/postgresql-8.3 restart

Całość powinna działać.

Po instalacji baza PostgreSQL będzie startować razem z systemem. Jeżeli to rozwiązanie nam się nie podoba i chcemy wyłączyć start serwer wraz z systemem, należy:
jeżeli mamy zainstalowany program sysv-rc-conf:

sudo sysv-rc-conf

odznaczmy X z poszczególnych poziomów startu systemu. Gdy chcemy aby serwer startował wraz z systemem zaznaczmy X’ami poziomy 2,3,4,5. Jeżeli nie mamy sysv-rc-conf to … polecam jego instalację:

sudo apt-get update
sudo apt-get install sysv-rc-conf

Jeżeli chcemy dokładniej kontroli na startem aplikacji uruchamiamy sysv-rc-conf z parametrem p:

sudo sysv-rc-conf -p

Tworzenie nowej bazy danych:

$ sudo su postgres -c createdb moja_baza

Logowanie do bazy ‚moja_baza':

sudo su postgres -c psql moja_baza

Instalacja dokumentacji dla PostgreSQL 8.3:

sudo apt-get install postgresql-doc-8.3

Aby dotrzeć do dokumentacji wklej do przeglądarki to:

file:///usr/share/doc/postgresql-doc-8.3/html/index.html

Dalsza lektura/zasoby:
Strona PostgreSQL (ang)
Strona PostgreSQL.org.pl
pgAdmin3
PostgreSQL na wikipedii (pl)
PostgreSQL na wikipedii (en)
Practical PostgreSQL (O’Reilly Unix) (en)
PostgreSQL: Introduction and Concepts (en) – dostępna także jako pdf w sieci.
SQL – wikipedia (pl)
SQL – wikipedia (en)