Start z PostgreSQL na Linux Debian część 1 – instalacja, podstawowa wiedza, konfiguracja serwera


Instalacja

Dodanie linijki z repo do etc/apt/sources.list 

deb http://apt.postgresql.org/pub/repos/apt/ WERSJA_SYSTEMU-pgdg main

Import i dodanie klucza do etc/apt/trusted.gpg. Można też zerknąć na stronę PostgreSQL i sprawdzić aktualność poniższego wpisu.

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | \
sudo apt-key add -
sudo apt-get update

Kto ciekaw, może również rzucić okiem na listę zaufanych kluczy w systemie i sprawdzić czy pojawił się nowy.

apt-key list

Ewentualne sprawdzenie listy dostępnych pakietów dla postgresql oraz instalacja wybranego.

aptitude search postgresql
aptitude install postgresql-10

Podstawowa wiedza

PostgreSQL działa w systemie jako proces pochodny init, na podstawie skryptu startowego /etc/init.d/postgresql, domyślnie  będzie się uruchamiał wraz ze startem systemu. Serwer nasłuchuje/komunikuje się na porcie 5432.

netstat -a | grep postgres

Podstawowe sterowanie serwerem ( start, stop, restart, status itp. ) uzyskuje się przez wydanie poleceń:

service postgresql

lub

/etc/init.d/postgresql

Po zatwierdzeniu zostaną zasugerowane opcje użycia, trzeba po prostu którąś dopisać po spacji do powyższego.

Z serwerami baz danych ściśle łączy się pojęcie klastra, czyli miejsca składowania danych/baz danych. Jeden klaster może zawierać wiele baz danych, a w ramach jednego serwera może istnieć wiele klastrów. W ramach natomiast jednego komputera, czy klastra komputerów, może pracować wiele serwerów baz danych replikujących między sobą dane, z mnóstwem klastrów i jeszcze większym mnóstwem baz, zawierających cały ogrom danych. No może nieco się zapędziłem 🙂 . W każdym razie nowo zainstalowany PostgreSQL będzie miał zainicjowany jeden główny klaster, którego umiejscowienie można sprawdzić z konsoli za pomocą polecenia:

pg_lsclusters

Gdyby nie chcieć tego domyślnego klastra, aby założyć swój własny, np.  żeby określić dla niego inne położenie i… co tam jeszcze, zarządzać wieloma klastrami. W sumie to zagadnienie nie jest na ten post, który ma być prostą instrukcją do rozpoczęcia pracy z PostgreSQL. Nie mniej bardzo fajnie temat kontroli powstania tego domyślnego klastra m. in. na Debianie został wyjaśniony tutaj.

W okolicy domyślnego położenia PostgreSQL w systemie oraz jego głównego klastra ( /var/lib/postgresql/…/main ), znajdują się też dwa mogące przydać się pliki, z historią wydanych poleceń i zapytań – .bash_history i .psql_history. Domyślnie w .psql_history przechowywanych jest 500 ostatnich zapytań. Można podejrzeć i zmienić wartość z poziomu klienta serwera psql.

\echo :HISTSIZE
\set HISTSIZE 600

Podstawowa konfiguracja serwera

Pliki konfiguracyjne PostgreSQL znajdują się w  /etc/postgresql/…/main

  • postgresql.conf – główny plik konfiguracyjny PostgreSQL. Ustawia się tu  m. in. strefę czasową, style daty, port nasłuchu, limity połączeń i sporo więcej. Istotne dla początkującego może być, że serwer domyślnie akceptuje tylko połączenia lokalne. Jeżeli chcesz to zmienić, by móc łączyć się z sieci, to trzeba w tym pliku odszukać, odkomentować i zmodyfikować linijkę listen_addresses = ‘localhost’  na  listen_addresses = ‘*’.
  • pg_hba.conf – zawiera konfigurację uwierzytelniania hostów. Jeżeli ma to być serwer na lokalnym komputerze dla siebie, to można wpisać jak poniżej – po lokalu będzie wpuszczać wszystkich użytkowników bez hasła. Jeżeli chcesz żeby było z hasłem, to zmień metodę autoryzacji z trust na md5. Ostatnia linijka, to przykładowa autoryzacja z sieci, dla określonego użytkownika i bazy. Może to być konkretny adres IP  lub adres sieci.
# TYPE  DATABASE        USER            ADDRESS                 METHOD
local   all             all                                     trust
host    all             all             127.0.0.1/32            trust
host    adam_db         adam            222.22.22.0/24          md5
  • pg_ident.conf – zawiera konfigurację uwierzytelniania użytkowników. Pozwala mapować użytkowników systemowych na bazodanowych.
  • start.conf – zawiera konfigurację trybu uruchamiania (auto/manual/disabled)

Wraz z instalacją PostgreSQL pojawia się nowy użytkownik systemowy – postgres, który jest administratorem dla serwera, mającym dostęp do jego systemowych zasobów. Można go sobie podejrzeć:

cat /etc/passwd

Oprócz tego, wewnątrz serwera, administratorem również jest użytkownik postgres, a jego domyślnie założona baza to… postgres – sporo tych postgresów na początek.  Warto więc sobie od razu rozróżnić, tego systemowego użytkownika postgres, od tego na serwerze, o tej samej nazwie.

Przejście na systemowego użytkownika postgres.

sudo su postgres

lub

su
su postgres

Następnie można uruchomić klienta łączącego się z PostgreSQL.

psql

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *