Как установить postgis в postgresql ubuntu
Обновлено: 02.07.2024
Рекомендую к прочтению:
В этом руководстве вы узнаете, как установить PostgreSQL в Ubuntu 20.04.
Что требуется для установки PostgreSQL?
Перед установкой Postgres в Ubuntu вам необходимо выполнить некоторые основные требования.
- Установленная Ubuntu 20.04
- Привилегии Sudo для установки пакетов.
- Подключение к интернету.
Установка 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
После установки вы можете проверить состояние PostgreSQL, выполнив следующую команду.
$ sudo systemctl status postgresql.service
По умолчанию пользователь Postgres создается во время установки. Чтобы получить доступ к оболочке Postgres, сначала переключитесь на пользователя Postgres.
Теперь введите команду psql,
Для проверки версии 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
Сохраните свою конфигурацию и перезапустите сервер PostgreSQL, чтобы изменения отразились в БД.
$ sudo systemctl restart postgresql.service
Теперь можно проверить прослушивает ли PostgreSQL другой интерфейс. Для этого выполните следующую команду.
Также проверьте правило брандмауэра 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
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'
Далее обновите списки пакетов, чтобы получить самую новую доступную версию:
sudo apt update
Установка PostgreSQL из PPA или официальных репозиториев выглядит одинаково:
sudo apt -y install postgresql
Настройка PostgreSQL в Ubuntu 20.04
После установки СУБД откройте терминал и переключитесь на пользователя postgres с помощью команды:
sudo -i -u postgres
Эта учетная запись создается во время установки программы и на данный момент вы можете получить доступ к системе баз данных только с помощью нее. По умолчанию PostgreSQL использует концепцию ролей для аутентификации и авторизации.
Это очень похоже на учетные записи Unix, но программа не различает пользователей и групп, есть только роли. Сразу после установки PostgreSQL пытается связать свои роли с системными учетными записями, если для имени системной учетной записи существует роль, то пользователь может войти в консоль управления и выполнять позволенные ему действия. Таким образом, после переключения на пользователя postgres вы можете войти в консоль управления:
И посмотреть информацию о соединении:
Чтобы выйти наберите:
Теперь рассмотрим, как создать другие роли и базы данных.
Создание роли postgresql
Вы уже можете полноценно работать с базой данных с помощью учетной записи postgres, но давайте создадим дополнительную роль. Учетная запись postgres является администратором, поэтому имеет доступ к функциям управления. Для создания пользователя выполните команду:
Скрипт задаст лишь два вопроса, имя новой роли и нужно ли делать ее суперпользователем.
Создание базы данных
Точно также как имена ролей сопоставляются с системными пользователями, имя базы данных будет подбираться по имени пользователя. Например, если мы создали пользователя alex, то по умолчанию система попытается получить доступ к базе данных alex. Мы можем ее очень просто создать:
Дальше, чтобы подключиться к этой базе данных нам нужно войти от имени одноименного пользователя:
Заходим в консоль и смотрим информацию о подключении:
Все верно сработало. Мы подключились с помощью роли alex к базе alex. Если нужно указать другую базу данных, вы можете сделать это с помощью опции -d, например:
psql -d postgres
Все сработало верно, при условии, что все компоненты были настроены как описано выше.
Создание таблиц
Теперь, когда вы знаете, как подключится к базе данных 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 );
Мы создали таблицу детской площадки для описания оборудования, которое на ней есть. Сначала идет идентификатор equip_id, который имеет тип serial, это значит, что его значение будет автоматически увеличиваться, ключ primary key значит, что значения должны быть уникальны.
Следующие колонки - обычные строки, для них мы задаем длину поля, они не могут быть пустыми (NOT NULL). Следующий столбец тоже строка, но она может содержать только одно из указанных значений, последний столбец - дата создания.
Вы можете вывести все таблицы, выполнив команду:
Здесь мы видим, что кроме нашей таблицы, существует еще одна переменная -playground_equip_id_seq. В ней содержится последнее значение этого поля. Если нужно вывести только таблицы, выполните:
Выводы
Теперь установка 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, необходимо выполнить последовательность определенных команд:
Читайте также: