Uvědomil jsem si, že po všech těch článcích o výkonnech databázových serverů a seriálu o jeho nastavení, tady vlastně nemám článek o instalaci. Tuto chybu napravuji, zde je návod na instalaci PostgreSQL serveru v CentOS 6.0. Krom způsobu instalace balíčků a umístění konfiguračního souboro je tento návod platný pro jakoukoliv distribuci.
Návod vás provede krok za krokem. Jistě není vyčeprávající, pro podrobnosti si prosím pročtěte dokumentaci.
Instalace balíčků
yum install postgresql postgresql-server
První inicializace clusteru
service postgresql initdb
Konfigurace
Soubor /var/lib/pgsql/data/postgresql.conf. Umístění může být různé. Ukázková funkční konfigurace:
# Sitova pripojeni listen_addresses = '*' max_connections = 32 # Vykonnostni volby shared_buffers = 256MB work_mem = 1MB maintenance_work_mem = 16MB effective_cache_size = 512MB default_statistics_target = 1000 # Logovani udalosti logging_collector = on log_directory = 'pg_log' log_filename = 'postgresql-%a.log' log_truncate_on_rotation = on log_rotation_age = 1d log_rotation_size = 0 log_min_duration_statement = 200 log_line_prefix='%t:%r:%u@%d:[%p]: ' # Locale datestyle = 'iso, mdy' lc_messages = 'en_US.UTF-8' lc_monetary = 'en_US.UTF-8' lc_numeric = 'en_US.UTF-8' lc_time = 'en_US.UTF-8' default_text_search_config = 'pg_catalog.english'
Zvětšení sdílené paměti
Pokud se PostgreSQL nespustí a v logu pgstartup.log jsou hlášky o velikosti sdílené paměti, bude nutné nastavit i kernel shared memory. V souboru /etc/sysctl.conf:
kernel.shmmax = 536870912
a potom reload nastavení pomocí příkazu
sysctl -p
První start PostgreSQL
service postgresql start
Vytvoření uživatelů
Pak se přepnout do uživatele postgresql:
su - postgres
Pod tímto uživatelem je možné vytvořit uživatele a vytvořit novou db (s nastaveným majitelem) příkazem:
createuser -P -E jmeno createdb -O jmeno jmeno
Příkaz createuser
se zeptá na heslo.
Je třeba nastavit soubor /var/lib/pgsql/data/pg_hba.conf
. Tam jsou přístupová pravidla.
Nastavení v následujícím příkladu povoluje připojení ze sítě localhost (pro lokální připojení přes socket slouží typ local
.
TYPE DB USER CIDR-ADDRESS METHOD host all all 127.0.0.1/32 md5
Pěkné.