Poradnik ten jest kompilacją trzech anglojęzycznych stron:
- Install PostgreSQL on Ubuntu 8.04 at hocuspokus
- PostgreSQL – Community Ubuntu Documentation
- 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 = onna
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-confodznaczmy 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)