PostgresQL + PostGIS на Ubuntu 16.04
Установка необходимых пакетов
Для установки PostgresQL и его расширения PostGIS требуется вначале подключить его репозиторий. Для этого нужно создать файл в директории с источниками пакетов
sudo nano /etc/apt/sources.list.d/pgdg.list
и добавить в него строку:
deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main
Далее импортировать ключ доступа к нему и обновить список пакетов
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
Устанавливаем необходимые пакеты.
sudo apt-get install postgresql-9.5 postgresql-client-9.5 postgresql-contrib-9.5 libpq-dev postgresql-server-dev-9.5 postgresql-9.5-postgis-2.3
версии Postgresql и PostGIS можно выбрать другие в зависимости от поставленных задач.
Настройка пользователя базы данных
Чтобы разрешить соединения по TCP/IP в файле /etc/postgresql/9.5/main/postgresql.conf
строку
#listen_addresses = 'localhost'
заменить на
listen_addresses = '0.0.0.0'
для возможности подключения других компьютеров.
Далее устанавливаем пароль для пользователя posgres (он создается автоматически при установке Postgresql)
sudo -u postgres psql template1
ALTER USER postgres with encrypted password '<ваш новый пароль>';
После настройки пароля, требуется изменить файл /etc/postgresql/9.5/main/pg_hba.conf
на использование MD5 аутентификации для пользователя postgres:
local all postgres md5
И в завершении перезапустить postgresql
sudo /etc/init.d/postgresql restart
Настройка базы данных
Все выполняемые далее sql-запросы находятся в директории usr/share/postgresql/9.5/contrib/postgis-2.3
поэтому при выполнении запросов нужно указывать либо полный путь, либо перейти в это директорию.
Вначале нужно создать базу данных. Для примера будем использовать в качестве имени базы test
sudo createdb --username postgres test
sudo createlang --username postgres pspgsql test
Далее требуется выполнить несколько запросов для установки расширения PostGIS
psql --username posgres -d test -f postgis.sql
psql --username posgres -d test -f postgis_comments.sql
psql --username posgres -d test -f spatial_ref_sys.sql
psql --username posgres -d test -f topology.sql
psql --username posgres -d test -f topology_comments.sql