Установка PostgreSQL сервера в Ubuntu Linux

Небольшой мануал по установке и настройке PostgreSQL сервера в Ubuntu (14.04).

1. Установка

Добавляем APT репозиторий:
$ echo 'deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main' \
>> /etc/apt/sources.list.d/pgdg.list
Импортируем ключ:
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | \
sudo apt-key add -
Устанавливаем:
# sudo apt-get update # apt-get install postgresql-{version}
Вместо {version} указываете ту версию сервера, которая вас интересует: 8.4 или 9.3.

Или выбираете более удобный для себя способ: http://www.postgresql.org/download/linux/ubuntu/.

2. Конфигурирование

После установки рабочая директория поумолчанию /etc/postgresql/{version}/main/ (графический инсталятор производит установку в /opt/, тогда рабочая директория будет /opt/PostgreSQL-{version}/data). В ней находятся основные конфигурационные файлы. 

Разрешаем соединения по TCP/IP

В конфигурационном файле postgresql.conf (поумолчанию находится в /etc/postgresql/{version}/main/) раскоментируем строку #listen_addresses = 'localhost' удалив символ #.
listen_addresses = 'localhost'
Чтобы подключаться к серверу с других машин, значние 'localhost' надо заменить на IP адрес машины, или 0.0.0.0, или просто поставить '*'.
Все необходимые подробности вы можете найти в комментариях в конфигурационном файле.

Настраиваем пользователя

При установке сервера в системе создается пользователь postgres с паролем postgres. С правами этого пользователя сервер общается с операционной системой (на сколько я понимаю). Но для работы вам этого не достаточно. Необходимо задать пароль для одноименного пользователя уже в рамках базы данных. Для этого запускаем консольный клиент psql с права пользователя postgres:
$ sudo -u postgres psql
И выполняем запрос:
ALTER USER postgres with encrypted password '_password_';
Где '_password_' - пароль для подключения к серверу под пользователем postgres.

Если вы не смогли войти под пользователем postgres, потому что psql не соизволил принять пароль, решить проблему можно следующим образом:
  • изменяете метод аутентификации для пользователя postgres на trust (см след. пункт)
  • изменяете пароль как описано выше
  • изменяете матод аутентификации на необходимый
  • не забываете перезапускать сервер после изменения метода аутентификации

Изменение метода аутентификации

В конфигурационном файле pg_hba.conf (поумолчанию находится в /etc/postgresql/{version}/main/) изменяем метод аутентификации для пользователя postgres c ident на md5:
local   all         postgres                          md5
После этого сервер необходимо перезапустить:
$ sudo /etc/init.d/postgresql restart

3. Настраиваем pgAdmin

pgAdmin — наиболее популярная и многофункциональная открытая среда администрирования и разработки для PostgreSQL, самой прогрессивной СУБД с открытым исходным кодом в мире. pgAdmin может работать на платформах Linux, FreeBSD, Solaris, Mac OSX и Windows и управлять PostgreSQL 7.3 и новее, а также коммерческими и производными версиями PostgreSQL, в частности Postgres Plus Advanced Server и Greenplum.
pgAdmin создан для удовлетворения самых разных потребностей пользователей, от написания простых SQL-запросов до создания сложных баз данных. Графический интерфейс pgAdmin поддерживает все возможности PostgreSQL и значительно облегчает администрирование. Приложение включает SQL-редактор с подсветкой синтаксиса, редактор хранимых процедур, агент планирования заданий SQL/командной оболочки, поддержку механизма репликации Slony-I и многое другое. Подключение к серверу можно установить, используя TCP/IP или Unix-сокеты (на платформах *nix ), и применить также SSL-шифрование для безопасности. При этом никакие дополнительные драйверы для соединения с сервером баз данных не требуются.
pgAdmin разрабатывается сообществом экспертов PostgreSQL со всего мира и доступен более чем на десяти языках. Это свободное программное обеспечение выпускается под лицензией PostgreSQL.
Если установка сервера производилась из репозитория, то установить графический клиент можно командой: 
$ sudo apt-get install pgadmin3
  1. Запускаем pgAdmin:
    $ pgadmin3
  2. Создаем новое подключение к серверу: File->Add server
  3. Даем подключению имя, указываем в качестве хоста localhost, в качестве пользователя postgres с паролем, созданным при конфигурировании сервера
  4. Если все хорошо сконфигурировано, проблем возникнуть не должно. 


4. Дополнительные источники информации

Самый исчерпывающий ресурс: Документация. Может быть установлена локально:
sudo apt-get install postgresql-doc-{version}
После установки находится здесь: file:///usr/share/doc/postgresql-doc-{version}/html/index.html