1) Установка
Заходим в порты и ставим сервер postgresql82-server.
#cd /usr/ports/database/postgresql82-server && make install clean
Начинается установка. После установки сама база и настройки будут лежать в /usr/local/pgsql (если эта папка пустая, значит нужно инициализировать, то есть создать пустую БД, шаблоны, конфиги. О том как это сделать, читаем в разделе инициализация БД.). Пользователь, от которого будет работать база называется pgsql. Сначало можно будет войти в базу только под этим юзером. Познакомимся “подближе” с этой БД.
2) Инициализация БД.
При установке вы можете обнаружить, что каталог /usr/local/pgsql пуст. Что бы создать БД, шаблоны и прочее нужно запустить скрипт инициализации БД:
#initdb /usr/local/pgsql/data/
где параметром выступает путь к каталогу, где будет лежать сама БД, конфиги. Эту команду следует выполнять из-под пользователя pgsql.
ПС. Под Gentoo linux для инициализации БД нужно было выполнить такую команду:
#emerge postgresql-server --config
Переключаемся на юзера pgsql (или от того, от которого работает postgresql)
#su pgsql
%
Узнаём список доступных баз и подключаемся к базе postgres (свежеустановленная БД содержит 3 базы: template0 и template1 – шаблоны баз, которые менять не стоит, а так же базу postgres )
%psql -l
List of databases
Name | Owner | Encoding
-----------+-------+----------
postgres | pgsql | UTF8
template0 | pgsql | UTF8
template1 | pgsql | UTF8
(3 rows)
$ psql postgres
Welcome to psql 8.2.7, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
postgres=#
Для управления базой существует windows-клиент, называемый PostgreSQL Maestro, который имеет довольно удобный интерфейс. Для доступа к базе с другой машины, нежели где стоит сервер, нужно добавить следующую строчку в файл /usr/local/pgsql/data/pg_hba.conf
host all all 10.10.10.1/32 trust
где указываем IP-адрес, если нужно дать доступ всей подсети, то указываем подсеть и маску 24.
Для любителей web-доступа есть отличный аналог phpMyAdmin – phpPgAdmin. Написан на php и не требует никаких настроек. Главное – собрать php с поддержкой PostgreSQL.
3) Создание пользователя и базы.
Сначала создавать будем пользователя, а потом базу (при создании пользователя будут задавать вопросы).
#su pgsql
%createuser postfix_user
Если хотите автоматом, без вопросов то лучше сделать так:
%createuser -DRS postfix_user
Создаём БД:
%createdb -O postfix_user postfix_db
Смотрим информацию:
%psql -l
List of databases
Name | Owner | Encoding
-----------+-------+----------
postfix_db| postfix_user | UTF8
postgres | pgsql | UTF8
template0 | pgsql | UTF8
template1 | pgsql | UTF8
(4 rows)
4) Правка конфига
Открываем файл postgresql.conf и правим такие опции:
listen_addresses='localhost'
max_connections = 150
unix_socket_directory='/tmp'
unix_socket_group='pgsql'
unix_socket_permissions=0777
log_destination='syslog'
log_directory='/var/log/postgres'
log_filename='pgsql-%Y-%m-%d'
lc_messages = 'ru_RU.UTF-8'
lc_monetary = 'ru_RU.UTF-8'
lc_numeric = 'ru_RU.UTF-8'
lc_time = 'ru_RU.UTF-8'
timezone = GMT