Как установить postgis в postgresql ubuntu

Обновлено: 02.07.2024

Рекомендую к прочтению:

В этом руководстве вы узнаете, как установить PostgreSQL в Ubuntu 20.04.

Что требуется для установки PostgreSQL?

Перед установкой Postgres в Ubuntu вам необходимо выполнить некоторые основные требования.

  1. Установленная Ubuntu 20.04
  2. Привилегии Sudo для установки пакетов.
  3. Подключение к интернету.

Установка PostgreSQL в Ubuntu

PostgreSQL доступен в репозиториях Ubuntu по умолчанию. Просто используйте команду apt для установки PostgreSQL. Наиболее распространенными установленными пакетами являются PostgreSQL server, client, pgadmin, а также библиотеки.

Для установки конкретной версии вы можете использовать PostgreSQL Apt repository.

Чтобы установка PostgreSQL Ubuntu прошла гладко, выполните следующие действия.

Во-первых, убедитесь, что ваша система находится в актуальном состоянии, выполнив следующую команду.

$ sudo apt install postgresql postgresql-contrib

После завершения установки PostgreSQL запустите службу PostgreSQL. Это можно сделать командой которая написана ниже.

$ sudo systemctl start postgresql.service

Также включите автоматический запуск службы PostgreSQL при загрузке системы. Делается это командой.

$ sudo systemctl enable postgresql.service

Запуск и включение службы postgres

Запуск и включение службы postgres

После установки вы можете проверить состояние PostgreSQL, выполнив следующую команду.

$ sudo systemctl status postgresql.service

Статус службы Postgres

Статус службы Postgres

По умолчанию пользователь Postgres создается во время установки. Чтобы получить доступ к оболочке Postgres, сначала переключитесь на пользователя Postgres.

Теперь введите команду psql,

Выполнение команд в оболочке Postgres

Выполнение команд в оболочке Postgres

Для проверки версии PostgreSQL выполните следующую команду:

Создание роли в PostgreSQL

Чтобы создать новую роль например с именем john, введите следующую команду в оболочке PostgreSQL.

Создание базы данных в PostgreSQL

Для создания новой базы данных требуется программа PostgreSQL database shell (psql). Войдите в оболочку psql и введите следующую команду, чтобы создать пользователя и установить пароль. Здесь я собираюсь создать имя пользователя jacky с паролем mystrongpassword. Вы можете создать свой собственный.

Создайте базу данных (например, gallary), используя следующую команду,

Предоставьте доступ к БД которую только что создали.. Здесь я собираюсь предоставить все права на базу данных gallery, чтобы пользователь jacky мог в ней работать.

Чтобы выйти из оболочки PostgreSQL требуется ввести команду q и нажать enter.

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

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

Включение удаленного доступа к PostgreSQL

По умолчанию PostgreSQL слушает на интерфейсе 127.0.0.1. Если вы хотите получить доступ к базе данных из другого места. Тогда вам требуется настроить PostgreSQL для прослушки различных сетевых интерфейсов. Чтобы настроить PostgreSQL для различных интерфейсов, откройте конфигурационный файл PostgreSQL с помощью nano или другим текстовым редактором. Я буду использовать редактор Vim.

$ sudo vi /etc/postgresql/12/main/postgresql.conf

Включение удаленного подключения в postgres

Включение удаленного подключения в postgres

Сохраните свою конфигурацию и перезапустите сервер PostgreSQL, чтобы изменения отразились в БД.

$ sudo systemctl restart postgresql.service

Теперь можно проверить прослушивает ли PostgreSQL другой интерфейс. Для этого выполните следующую команду.

Состояние прослушивания порта Postgres

Состояние прослушивания порта Postgres

Также проверьте правило брандмауэра UFW, делается это командой.

Конфигурация Postgres ufw

Конфигурация Postgres ufw

Заключение

В этом руководстве вы узнали, как установить сервер PostgreSQL на Ubuntu 20.04. Кроме того, вы также узнали, как привязать PostgreSQL к различным сетевым интерфейсам, чтобы принимать соединения от удаленного клиента.

Реляционные системы управления базами данных (РСУБД) - это ключевой компонент многих веб-сайтов и приложений. Они обеспечивают структурированный способ хранения данных и организацию доступа к информации. PostgreSQL- это объектно-реляционная система управления базами данных, которая все больше и больше вытесняет MySQL и производственных серверов.

Её преимущество в множестве дополнительных функций и улучшений, таких как надежная передача данных и параллелизация без блокировок чтения. Вы можете использовать эту СУБД с различными языками программирования, а её синтаксис запросов PL/pgSQL очень похож на MySQL от Oracle. В этой статье мы рассмотрим, как выполняется установка PostgreSQL в Ubuntu 20.04 из официальных репозиториев и репозитория PostgreSQL (PPA) а так же, как выполнить первоначальную настройку и подготовку к работе c данной СУБД.

Установка PostgreSQL в Ubuntu 20.04

1. Установка из официальных репозиториев

Это очень популярная СУБД, потому программа присутствует в официальных репозиториях. Для установки выполните следующие команды. Сначала обновите списки пакетов:

sudo apt update

Установите СУБД PostgreSQL:

sudo apt -y install postgresql

Bxu6MavjgSm6AAAAAElFTkSuQmCC

2. Установка из официальных репозиториев PostgreSQL

Если есть необходимость в получение самой последней версии, то необходимо добавить в систему официальный PPA от разработчиков PostgreSQL. Для этого выполните следующие команды:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

wWqXkIy35biQwAAAABJRU5ErkJggg==

Далее обновите списки пакетов, чтобы получить самую новую доступную версию:

sudo apt update

Установка PostgreSQL из PPA или официальных репозиториев выглядит одинаково:

sudo apt -y install postgresql

vQQAAAABJRU5ErkJggg==

Настройка PostgreSQL в Ubuntu 20.04

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

sudo -i -u postgres

2s8PoiwrxRHO3tOHf8f3BQ31KaKItuAAAAAElFTkSuQmCC

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

Это очень похоже на учетные записи Unix, но программа не различает пользователей и групп, есть только роли. Сразу после установки PostgreSQL пытается связать свои роли с системными учетными записями, если для имени системной учетной записи существует роль, то пользователь может войти в консоль управления и выполнять позволенные ему действия. Таким образом, после переключения на пользователя postgres вы можете войти в консоль управления:

qB7YIAAAAASUVORK5CYII=

И посмотреть информацию о соединении:

AZl3R9oWNdWtmo0mbESvqGD9PFvtk1KNMMUU4yH8P7pEDPO2B5uMAAAAAElFTkSuQmCC

Чтобы выйти наберите:

Теперь рассмотрим, как создать другие роли и базы данных.

Создание роли postgresql

Вы уже можете полноценно работать с базой данных с помощью учетной записи postgres, но давайте создадим дополнительную роль. Учетная запись postgres является администратором, поэтому имеет доступ к функциям управления. Для создания пользователя выполните команду:

AAAAAElFTkSuQmCC

Скрипт задаст лишь два вопроса, имя новой роли и нужно ли делать ее суперпользователем.

Создание базы данных

Точно также как имена ролей сопоставляются с системными пользователями, имя базы данных будет подбираться по имени пользователя. Например, если мы создали пользователя alex, то по умолчанию система попытается получить доступ к базе данных alex. Мы можем ее очень просто создать:

Дальше, чтобы подключиться к этой базе данных нам нужно войти от имени одноименного пользователя:

8HKGPz6sRI9TQAAAAASUVORK5CYII=

Заходим в консоль и смотрим информацию о подключении:

Q7ZDAZkeD5IHqxR00myNauwopyDnHitgFLZgaQq9yhmbBt6baxOs6xOK+43npgKfspGgIMAAlA9f8S4fTT5td9DO0AAAAASUVORK5CYII=

Все верно сработало. Мы подключились с помощью роли alex к базе alex. Если нужно указать другую базу данных, вы можете сделать это с помощью опции -d, например:

psql -d postgres

AXu3ZA3MmjUvAAAAAElFTkSuQmCC

Все сработало верно, при условии, что все компоненты были настроены как описано выше.

Создание таблиц

Теперь, когда вы знаете, как подключится к базе данных PostgreSQL, давайте рассмотрим, как выполняются основные задачи. Сначала разберем создание таблиц для хранения некоторых данных. Для создания таблицы PostgreSQLиспользуется такой синтаксис:

CREATE TABLE имя_таблицы (имя_колонки1 тип_колонки (длина) ограничения, имя_колонки2 тип_колонки (длина), имя_колонки3 тип_колонки (длина));

Как видите, сначала мы задаем имя таблицы, затем описываем каждый столбец. Столбец должен иметь имя, тип и размер, также можно задать ограничения для данных, которые там будут содержаться. Например:

CREATE TABLE playground (equip_id serial PRIMARY KEY, type varchar (50) NOT NULL, color varchar (25) NOT NULL, location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')), install_date date );

BJQpdSr1BRyAAAAAAElFTkSuQmCC

Мы создали таблицу детской площадки для описания оборудования, которое на ней есть. Сначала идет идентификатор equip_id, который имеет тип serial, это значит, что его значение будет автоматически увеличиваться, ключ primary key значит, что значения должны быть уникальны.

Следующие колонки - обычные строки, для них мы задаем длину поля, они не могут быть пустыми (NOT NULL). Следующий столбец тоже строка, но она может содержать только одно из указанных значений, последний столбец - дата создания.

Вы можете вывести все таблицы, выполнив команду:

w8xx87mvdlmxAAAAABJRU5ErkJggg==

Здесь мы видим, что кроме нашей таблицы, существует еще одна переменная -playground_equip_id_seq. В ней содержится последнее значение этого поля. Если нужно вывести только таблицы, выполните:

6QAAAABJRU5ErkJggg==

Выводы

Теперь установка Postgresql в Ubuntu 20.04 завершена, и вы прошли краткий экскурс в синтаксис PgSQL, который очень похож на привычный нам MySQL, но имеет некоторые отличия. Если у вас остались вопросы, спрашивайте в комментариях!

PostGIS – это расширение реляционной базы данных PostgreSQL, предназначенное для работы с пространственными данными. PostGIS позволяет хранить пространственные данные с помощью типов данных geometry и geography, выполнять пространственные запросы, определять площадь, расстояние, длину и периметр, а также создавать пространственные индексы.

Данное руководство поможет установить PostGIS, настроить PostgreSQL для поддержки пространственных данных, загрузить пространственные объекты в БД и выполнить базовый запрос.

  • Сервер Ubuntu 14.04 (о настройке такого сервера можно прочесть здесь).
  • Пользователь с доступом к sudo.
  • Предустановленная база данных PostgreSQL (руководство по установке можно найти по этой ссылке; в руководстве используется БД test1).

1: Установка PostGIS

PostGIS нет в репозитории Ubuntu. Пакеты PostGIS можно скачать с UbuntuGIS, стороннего репозитория, в котором хранятся открытые пакеты GIS. Конечно, UbuntuGIS не всегда содержит самые современные версии PostGIS, однако он хорошо поддерживается. Кроме того, благодаря этому репозиторию не придётся компилировать PostGIS из исходного кода.

В Ubuntu 14.04 добавьте нестабильную ветку репозитория UbuntuGIS:

sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable

ubuntugis/+archive/ubunt/ubuntugis-unstable
Press [ENTER] to continue or ctrl-c to cancel adding it

Нажмите Enter, после чего код будет добавлен:

gpg: keyring `/tmp/tmpintg192h/secring.gpg' created
gpg: keyring `/tmp/tmpintg192h/pubring.gpg' created
gpg: requesting key 314DF160 from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpintg192h/trustdb.gpg: trustdb created
gpg: key 314DF160: public key "Launchpad ubuntugis-stable" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
OK

Обновите индекс пакетов:

sudo apt-get update

sudo apt-get install postgis

Подтвердите установку, нажав Y. Команда установит PostGIS и зависимости.

2: Настройка PostgreSQL для поддержки PostGIS

Функции PostGIS нужно включать для каждой БД индивидуально.

Примечание: Для демонстрации примеров используется БД test1 и пользователь postgres из руководства по установке PostgreSQL.

Перейдите в сессию пользователя postgres.

sudo -i -u postgres

Подключитесь к БД test1:

Включите расширение PostGIS для этой БД:

CREATE EXTENSION postgis;

Убедитесь, что расширение включено:

Теперь эта БД поддерживает пространственные данные. Закройте сессию SQL и вернитесь в терминал:

Вернитесь в сессию системного пользователя.

3: Оптимизация PostgreSQL для обработки объектов GIS

PostgreSQL может работать на любой платформе, но настройки СУБД «из коробки» слишком консервативны. Объекты GIS очень большие по сравнению с текстовыми данными. Оптимизируйте PostgreSQL для поддержки данных GIS.

Отредактируйте конфигурационный файл PostgreSQL, postgresql.conf.

sudo nano /etc/postgresql/9.3/main/postgresql.conf

В строке shared_buffers нужно указать около 75% оперативной памяти. На сервере в 512MB достаточно выделить 200MB.

Найдите checkpoint_segments, раскомментируйте её и укажите значение 6:

Сохраните и закройте файл (CTRL+X, Y и Enter).

Примечание: Больше о пространственных параметрах PostgreSQL можно узнать здесь.

sudo service postgresql restart

4: Загрузка пространственных данных

Добавьте в БД пространственные данные, чтобы ознакомиться с инструментарием и процессом обработки этих данных в PostgreSQL.

Сайт Natural Earth – отличный источник таких данных.

Перейдите в домашний каталог и создайте папку nedata, в которой будут храниться данные с Natural Earth.

Перейдите в этот каталог:

Загрузите пространственные данные с сайта:

Команда загрузит сжатый файл. Распакуйте его с помощью unzip.

Примечание: Чтобы установить unzip, введите:

sudo apt-get install unzip

Чтобы распаковать файл, введите:

На сервере появится шесть файлов:

  • ne_110m_admin_0_countries.README.html
  • ne_110m_admin_0_countries.VERSION.txt
  • ne_110m_admin_0_countries.dbf
  • ne_110m_admin_0_countries.prj
  • ne_110m_admin_0_countries.shp
  • ne_110m_admin_0_countries.shx

Файлы .dbf, .prj, .shp и .shx составляют ShapeFile, популярный формат геопространственных данных, используемый программным обеспечением GIS. Загрузите его в БД test1.

Для этого нужно установить GDAL (библиотеку Geospatial Data Abstraction Library). При установке GDAL устанавливается OGR (OpenGIS Simple Features Reference Implementation) и команда ogr2ogr. Это библиотека для перевода векторных данных, с помощью которой можно перевести Shapefile в формат, понятный PostGIS.

sudo apt-get install gdal-bin

Вернитесь в сессию пользователя postgres.

sudo -i -u postgres

Конвертируйте Shapefile, загруженный с Natural Earth, в формат, который может прочитать PostGIS, с помощью команды ogr2ogr.

ogr2ogr -f PostgreSQL PG:dbname=test1 -progress -nlt PROMOTE_TO_MULTI /home/8host/nedata/ne_110m_admin_0_countries.shp

Рассмотрим эту команду по частям.

Примечание: Посетите сайт ogr2ogr, чтобы узнать об остальных опциях.

Вышеприведённая команда вернёт такой вывод:

0. 10. 20. 30. 40. 50. 60. 70. 80. 90. 100 - done.

Убедитесь, что данные были успешно импортированы, с помощью команды ogrinfo.

ogrinfo -so PG:dbname=test1 ne_110m_admin_0_countries

INFO: Open of `PG:dbname=test1'
using driver `PostgreSQL' successful.
Layer name: ne_110m_admin_0_countries
Geometry: Multi Polygon
Feature Count: 177
Extent: (-180.000000, -90.000000) - (180.000000, 83.645130)
Layer SRS WKT:
GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],
UNIT["degree",0.0174532925199433,
AUTHORITY["EPSG","9122"]],
AUTHORITY["EPSG","4326"]] FID Column = ogc_fid
Geometry Column = wkb_geometry
scalerank: Integer (4.0)
featurecla: String (30.0)
.
region_wb: String (254.0)
name_len: Real (16.6)
long_len: Real (16.6)
abbrev_len: Real (16.6)
tiny: Real (16.6)
homepart: Real (16.6)

Теперь в БД добавлены пространственные данные.

5: Запрос пространственных данных

Для примера попробуйте найти десять самых северных стран в мире. С PostGIS это очень просто.

Вернитесь в БД test1.

Команда вернёт две таблицы:

List of relations
Schema | Name | Type | Owner
-------+---------------------------+-------+----------
public | ne_110m_admin_0_countries | table | postgres
public | spatial_ref_sys | table | postgres
(2 rows)

Используйте таблицу ne_110m_admin_0_countries, которая содержит необходимые данные. Столбец admin содержит название страны, столбец wkb_gemoetry – геометрические данные. Чтобы просмотреть столбцы ne_110m_admin_0_countries, выполните команду:

На экране появятся столбцы и их типы данных. Тип данных столбца wbk_geometry имеет такой вид:

Столбец wbk_geometry содержит многоугольники. В данном примере вы имеете дело со странами и их нерегулярными границами, следовательно, каждая страна в базе не имеет одного значения широты. Таким образом, чтобы получить широту для каждой страны, сначала нужно выяснить центроид каждой страны с помощью функции ST_Centroid. Извлеките значение Y центроида с помощью функции ST_Y; это значение можно использовать как широту.

Запрос выглядит так:

SELECT admin, ST_Y(ST_Centroid(wkb_geometry)) as lattitude
FROM ne_110m_admin_0_countries
ORDER BY latitude DESC
LIMIT 10;

Результаты будут выведены в порядке убывания, так как самая северная страна будет иметь самую высокую широту.

Данный запрос выведет десять самых северных стран мира:

admin | latitude
----------+------------------
Greenland | 74.7704876939899
Norway | 69.1568563971328
Iceland | 65.074276335291
Finland | 64.5040939185674
Sweden | 62.8114849680803
Russia | 61.9808407507127
Canada | 61.4690761453491
Estonia | 58.643695240707
Latvia | 56.8071751342793
Denmark | 56.0639344617945
(10 rows)

Чтобы закрыть БД, введите:

Примечание: Больше информации о функциях PostGIS можно найти в документации расширения.

Заключение

Теперь у вас есть таблица с поддержкой пространственных данных. более подробный мануал можно найти по этой ссылке.

PostgreSQL – кроссплатформенная СУБД с расширенной функциональностью, и открытым исходным кодом. Она совместима со многими операционными системами. Чтобы установить PostgreSQL на Ubuntu, потребуется уже развернутая операционная система, пользователь с привилегиями sudo и базовый файрвол.

В статье рассмотрим установку, настройку и удаление на Ubuntu PostgreSQL версии 11.1.

Установка PostgreSQL

Установить PostgreSQL можно непосредственно из репозитория Ubuntu. По умолчанию его пакеты уже находятся в операционной системе. Перед установкой нужно сначала выполнить их обновление командой:

Далее следует установка самого ПО совместно с пакетом contrib , в котором содержаться дополнительные инструменты и утилиты:

Установка PostgreSQL на Ubuntu 18.04 завершена.

Подключение к СУБД

В процессе инсталляции, программа автоматически создает пользователя базы данных с правами администратора – postgres . Войти в СУБД на данный момент можно только через эту учетную запись. Следует добавить созданного пользователя в группу sudo:

Установить для него пароль:

Выполнить запуск оболочки программы, можно переключившись на сессию учетной записи. Для этого используется команда:

Ее можно также запустить, не переключая сессию от имени postgres:

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

Подключение PostgreSQL по сети

По умолчанию эта СУБД слушает только localhost (компьютер, на который устанавливается база данных). Чтобы подключиться к ней по сети нужно указать, какие сетевые интерфейсы ей следует прослушивать.

Для этого нужно открыть файл postgresql.conf :

Здесь необходимо произвести замену параметра « ’localhost’ » в зависимости от того, сколько интерфейсов нужно прослушивать. Например, если нужна прослушка всего перечня доступных интерфейсов, то вписываем параметры « 000.00.0.0 »:

Если же требуется прослушивать конкретный IP, то нужно вписать именно этот адрес (например — 194.61.0.6 ):

Теперь нужно создать правила авторизации для безопасного подключения. Для этого добавить строку в файле /etc/postgresql/10/main/pg_hba.conf :

Где вместо 192.168.0.10/32 вписывается адрес (с маской подсети), откуда идет подключение к базе данных.

Выполняется сохранение и перезапуск PostgreSQL:

На этом настройка PostgreSQL на Ubuntu закончена.

Создание ролей

Часто для работы с БД возникает необходимость нескольких учетных записей.

Чтобы создать нового пользователя, используется команда createuser . Для работы в интерактивном режиме применяется ключ –interactive . При этом будет запрошено имя новой роли и права суперпользователя.

После того, как выполнен вход в аккаунт под пользователем postgres, нужно создать новую роль:

Если не нужно переключать аккаунты, то предыдущую команду нужно записать так:

После этого выбирается имя новой учетной записи и задаются такие параметры, как привилегии суперпользователя, разрешение на создание БД и возможность создавать роли:

Если понадобится сделать больше настроек, то с помощью следующей команды можно просмотреть все ключи:

Создание новой базы данных

При создании базы данных, важно не забыть, что она имеет такое же название, как и пользователь под которым происходит авторизация. Ранее была создана роль testuser, значит такое же имя нужно дать и для базы данных. Для этого после авторизации под пользователем postgres, следует ввести команду:

Если не требуется переключение аккаунта, то вводится команда:

Создание таблицы

Базовая команда для создания таблицы выглядит так:

Изначально присваивается имя таблице, потом дается название столбцам, указывается их тип, и длина значений.

Посмотреть готовую таблицу можно с помощью команды:

Добавление и удаление данных

Чтобы добавить данные в таблицу применяется команда INSERT INTO. Это можно сделать двумя способами.

Первый, короткий вариант:

Здесь главное не забывать про последовательность столбцов, для правильного введения значения.

В другом способе в команде указываются столбцы:

Чтобы удалить записи, нужно использовать следующую команду:

После выполнения этой команды, строки в которых будут заданы значения столбцов, удалятся:

Если данные значений не нужно указывать, тогда следует удалить все строки таблицы:

Добавление и удаление столбцов

При добавлении столбцов следует использовать команду:

По завершении команды будет создан новый столбец с заданным названием.

Чтобы его удалить, следует выполнить команду:

Теперь можно приступить к работе с базой данных. Для подключения к ней нужно запустить psql с параметрами:

Общий вид команды:

Теперь установка и настройка PostgreSQL на Ubuntu завершена. Можно полноценно взаимодействовать с СУБД: создавать таблицы, делать выборки и хранить информацию.

Чтобы удалить PostgreSQL из Ubuntu, необходимо выполнить последовательность определенных команд:

Читайте также: