Adatbázis Arch Linux

Postgresql telepítése

A PostgreSql (más nevén Postgres) nyílt forráskódú objektum-relációs adatbázis rendszer. Történetét már több mint 15 éve aktív fejlesztés jellemzi, melynek során az architektúra bizonyított és kiérdemelt hírnévre tett szert többek között a megbízhatóság, az adatok integritásának területén.

Ha minden igaz, telepítési metódja Linux disztribúciótól független, de tudnod kell, hogy jelen leírásnak Arch Linux-on történő telepítés az alapja. Aktuális verzió a 9.4.5

Telepítés

pacman -S postgresql

Inicializálás

Első lépésként létre kell hozni az adatbázist tároló területet – SQL-ben erre a cluster catalog kifejezést használják. Az adatbázis cluster egy olyan adatbázis gyűjtemény, amelyet egy futó adatbázis szerver egyetlen példánya kezel. Az első inicializáció után a cluster egy postgres nevű adatbázist tartalmaz. Minden további adatbázis létrehozása a template1 nevezetű adatbázis alapján történik.

Fájlrendszer szinten a cluster adatok egy könyvtáron belül lesznek tárolva, amit data directory vagy data area-nak neveznek. A könyvtár helye teljesen szabad választás, bár a különféle disztribúciók felkínálnak egy alapértelmezett helyet.

Az inicializálást a postgres nevű felhasználóval kell végrehajtanod, ehhez a su vagy sudo segítségét tudod igénybe venni:

su - postgres # ekkor postgres felhasználó leszel
vagy
sudo -i -u postgres [command] # ekkor postgres felhasználó nevében hajtod végre az utasítást

A cluster létrehozása (az elérési út disztribúciónként változhat, pl.: ubuntun /var/lib/postgresql):

[postgres] initdb --locale en_US.UTF-8 -E UTF8 -D '/var/lib/postgres/data'

A kimenet nagyjából ehhez hasonló (Én hu_HU.UTF8-at adtam meg):

initdb --locale hu_HU.UTF-8 -E UTF8 -D '/var/lib/postgres/data'
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "hu_HU.UTF-8".
The default text search configuration will be set to "hungarian".

Data page checksums are disabled.

fixing permissions on existing directory /var/lib/postgres/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
creating template1 database in /var/lib/postgres/data/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating collations ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
loading PL/pgSQL server-side language ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok
syncing data to disk ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

    postgres -D /var/lib/postgres/data
or
    pg_ctl -D /var/lib/postgres/data -l logfile start

Ezután már csak engedélyezni és indítani kell:

systemctl enable postgresql
systemctl start postgresql

 Autentikáció beállítása

Első telepítéskor a postgres felhasználóval jelszó nélkül lehet belépni, ezért ezt célszerű módosítani. Először is adj meg egy új jelszót:

sudo -u postgres psql template1
  ALTER USER postgres with encrypted password 'az_uj_jelszo';
  \q

Ezután a hozzáféréseket szabályzó fájlban (pg_hba.conf) szigorítanod kell a hozzáféréseken:

local   all         postgres                          md5
local   all             all                           md5

Loading

Címkék