Настройка QGIS + PostGIS + PostgreSQL на CentOS 7

Термины по теме: QGISPostGIS, PostgreSQL, LinuxCentOS

В данной инструкции мы разберем процесс установки и настройки сервера баз данных для хранения информации из QGIS. Предполагается, что последний будет установлен на другом компьютере и подключение будет выполняться по сети.

Установка, настройка PostgreSQL и PostGIS

Установка и запуск

Устанавливаем необходимые компоненты:

yum install postgresql-server postgresql-contrib postgis

* где postgresql-server — сервер баз данных PostgreSQL; postgresql-contrib — дополнительный набор утилит и средств анализа для postgres; postgis — компонент для хранения геоданных в postgres.

Инициализируем базу:

postgresql-setup initdb

Разрешаем и запускаем Postgres:

systemctl enable postgresql

systemctl start postgresql

Настройка

Смотрим путь расположения баз:

systemctl status postgresql

Находим строчку похожую на:

/usr/bin/postgres -D /var/lib/pgsql/data -p 5432

Нас интересует /var/lib/pgsql/data — это путь размещения баз и конфигурационных файлов.

Открываем конфигурационный файл postgresql.conf:

vi /var/lib/pgsql/data/postgresql.conf

Находим строку:

#listen_addresses = 'localhost'

И меняем ее на:

listen_addresses = '*'

Теперь открываем следующий файл:

vi /var/lib/pgsql/data/pg_hba.conf

И добавляем, примерно, следующее:

host     all     all     192.168.0.0/24     password

* данная строка позволяет подключаться к серверу с любого компьютера в сети 192.168.0.0; первая и вторая all дает возможность подключаться всем учетным записям и ко всем базам; password — для подключения необходима аутентификация.

Для применения настроек перезапускаем сервер баз данных:

systemctl restart postgresql

Открываем сетевой порт в брандмауэре:

firewall-cmd --permanent --add-port=5432/tcp

firewall-cmd --reload

Создание базы данных и пользователя

Для подключения к СУБД сначала заходим в систему под пользователем postgres:

su - postgres

Подключаемся к PostgreSQL:

psql

В целях безопасности, задаем пароль для учетной записи postgres:

=# ALTER USER postgres PASSWORD 'password';

* где password — создаваемый пароль.

Создаем базу данных:

=# CREATE DATABASE gis_db WITH ENCODING='UTF-8';

Подключаемся к созданной базе:

=# \connect gis_db;

К созданной базе добавляем расширения:

=# CREATE EXTENSION postgis;

=# CREATE EXTENSION postgis_topology;

=# CREATE EXTENSION fuzzystrmatch;

Создадим группу пользователей:

=# CREATE ROLE gis_group NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;

Создадим пользователя gis_user:

=# CREATE ROLE gis_user WITH LOGIN PASSWORD 'gis_password';

Добавляем пользователя gis_user в группу gis_group:

=# GRANT gis_group TO gis_user;

Предоставляем права на базу gis_db группе gis_group:

=# GRANT ALL PRIVILEGES ON DATABASE gis_db TO GROUP gis_group;

Настройка QGIS для подключения к базе данных

Запускаем программу и в левой части кликаем правой кнопкой мыши по PostGIS - Создать соединение:

Создаем соединение в QGIS

Заполняем форму:

Заполняем данные для подключения QGIS к СУБД

* где:

Нажимаем по Проверка соединения - мы должны получить подтверждение успешного подключения. После нажимаем OK и подтверждаем намерение сохранить пароль.

В ветке PostGIS появится наше подключение и схемы:

В ветке PostGIS видим схемы

Также мы можем создать свою схему в базе PostgreSQL. Для этого кликаем правой кнопкой по нашему соединению (SQL-GIS) и выбираем Создать схему:

Создаем свою схему в PostgreSQL через QGIS

Вводим имя схемы, например, new_schema и нажимаем OK. В ветке PostGIS и в базе PostgreSQL появится новая схема. Увидеть ее можно следующей командой:

=# \connect gis_db;

=# select schema_name from information_schema.schemata;

# Серверы # Базы данных # CentOS
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет