Как узнать версию postgis
Как узнать версию PostgreSQL в Ubuntu Linux
Уважаемые посетители, сайт «Установка и Настройка Windows и Linux» работает специально для вас и практически каждый день пополняется новыми статьями. У меня как у автора сайта к вам просьба, пожалуйста выключите блокировщик рекламы для нашего сайта, так как именно реклама позволяет содержать этот сайт. Спасибо за понимание. Вы так же можете оказать материальную помощь проекту в разделе «Помощь Сайту«
PostgreSQL — это система управления реляционными базами данных с открытым исходным кодом, которая обычно называется Postgres.
Администратору базы данных очень важно знать установленную версию Postgres в системе. Например, если вы разворачивайте приложение для которого требуется определенная версия Postgres, то вам может потребоваться выполнить поиск той же версии сервера PostgreSQL.
Существует множество способов узнать, какая версия сервера PostgreSQL установлена и запущена в вашей системе. В этой статье я объясню, как проверить ваш сервер PostgreSQL и клиент с помощью различных методов.
Если вы не знаете как установить PostgreSQL для Ubuntu, рекомендую эту статью к прочтению Установка PostgreSQL в Ubuntu.
Узнать версию PostgreSQL с помощью командной строки
Чтобы узнать запущенную версию PostgreSQL в вашей системе, откройте терминал и выполните команду postgres с параметром -V или -version:
Обе команды выдадут результат в виде:
В этом примере PostgreSQL имеет версию 12.5
Если двоичный файл postgres отсутствует в пути системы, тогда вы получите сообщение об ошибке «postgres: command not found». Чтобы обойти эту проблему, вам требуется найти двоичный каталог PostgreSQL. Введите следующую команду, чтобы найти двоичную папку PostgreSQL:
Полный путь к вашей двоичной папке postgresql отобразится в вашем терминале.
Путь к двоичной папке PostgreSQL
Введите полный путь и добавьте опцию –version или -V, после этого вы увидите текущую версию сервера PostgreSQL.
Обе команды выдадут результат в виде:
Отлично мы получили результат как и выше. PostgreSQL имеет версию 12.5
Использование SQL Shell
Версию Postgre так же можно узнать из командной строки самого PostgreSQL. Войдите в SQL запрос сервера и выполните SQL — команду для показа версии.
Введите следующую команду SQL, чтобы узнать установленную версию PostgreSQL:
В этом примере версия PostgreSQL так же как и в предыдущих примерах 12.5
Вы можете отобразить только версию сервера PostgreSQL, используя следующую инструкцию SQL.
Эта команда SQL выдаст следующие данные:
Версия PostgreSQL sever с использованием оператора SQL
Как можно увидеть из ответа сервера, запущена версия PostgreSQL 12.5
Версия клиента PSQL
psql — это терминальная интерактивная утилита командной строки, которая действует как интерфейс для PostgreSQL и позволяет вам взаимодействовать с сервером PostgreSQL. Для того чтоб узнать версию клиентской утилиты psql можно выполнить следующую команду:
Также вы можете запустить команду psql с опцией -V для показа версии клиентской утилиты psql.
Вы получите следующий результат в вашем терминале:
Версия клиента PostgreSQL psql
В этом примере утилита psql client Utility tool имеет версию 12.5
Заключение
Мы надеемся, что эта статья помогла Вам узнать версию PostgreSQL. Пожалуйста, не стесняйтесь оставляйте комментарии. Спасибо.
Как проверить версию PostgreSQL
Главное меню » Базы данных » Как проверить версию PostgreSQL
Знание того, какая версия сервера PostgreSQL установлена и работает в вашей системе, может быть важно в некоторых ситуациях. Например, если вы устанавливаете приложение, для которого требуется определенная версия PostgreSQL, вам необходимо выяснить версию вашего сервера PostgreSQL.
В этой статье мы объясним, как узнать, какая версия сервера PostgreSQL работает в вашей системе.
Версия PostgreSQL
PostgreSQL имеет версии по следующей схеме:
Например, в PostgreSQL 12.1 12 – это основная версия и 1 – дополнительная версия.
Основные выпуски PostgreSQL с новыми функциями обычно выпускаются раз в год. Каждый основной релиз поддерживается в течение 5 лет.
Использование командной строки
Команда выведет версию PostgreSQL:
В этом примере используется версия сервера PostgreSQL 10.6.
Если двоичный файл postgres отсутствует в системном PATH, вы получите сообщение об ошибке «postgres: command not found». Обычно это происходит, когда пакет PostgreSQL не установлен из стандартных репозиториев дистрибутива.
Вы можете найти путь к двоичному файлу с помощью команды locate или find:
Вывод должен выглядеть примерно так:
Как только вы найдете путь к двоичному файлу, вы можете использовать его для получения версии сервера PostgreSQL:
Версию клиентской утилиты psql в PostgreSQL можно найти с помощью следующей команды:
Вывод будет выглядеть примерно так:
psql – интерактивная утилита командной строки, которая позволяет вам взаимодействовать с сервером PostgreSQL.
Использование оболочки SQL
Другой способ определить версию сервера PostgreSQL – войти в SQL-запрос сервера и использовать инструкцию SQL для распечатки версии.
Вы можете получить доступ к оболочке PostgreSQL с помощью GUI-клиента, такого как pgAdmin или с помощью psql:
Следующий оператор отображает версию сервера PostgreSQL вместе с информацией о сборке:
Если вы хотите получить только номер версии сервера PostgreSQL, используйте следующий запрос:
Вывод
В этой статье мы показали несколько разных вариантов того, как найти версию сервера PostgreSQL, работающую в вашей системе.
Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
PostgreSQL в Linux: рецепты популярных действий и решения проблем
Оглавление
PostgreSQL, как сказано на её официальном сайте, это самая продвинутая в мире реляционная база данных с открытым исходным кодом.
Использование PostgreSQL
Как запустить службу PostgreSQL. Как управлять службой PostgreSQL
Запуск службы PostgreSQL:
Остановка службы PostgreSQL:
Добавление службы PostgreSQL в автозагрузку:
Удаление службы PostgreSQL из автозагрузки:
Для просмотра состояния процесса PostgreSQL:
Альтернативный вариант запуска службы для работы с определённой базой данных следующий:
Как узнать, какая версия PostgreSQL запущена
Версию запущенной PostgreSQL не всегда можно определить по установленным пакетам. Например, во время обновления PostgreSQL на некоторых дистрибутивах не заменяет предыдущую версию, а устанавливает новую в дополнении к имеющейся. Иногда у пользователя в корпоративной среде есть доступ через Navicat или phpPgAdmin, но нет доступа к консоли сервера, на котором работает база данных.
Для определения версии сервера выполните команду:
Для определения версии клиента:
Ещё один вариант определения версии PostgreSQL:
Если вам нужен только номер версии (например, для скрипта), то используйте следующую команду:
Хотя вместо postgres можно использовать postmaster, использование postgres предпочтительнее, поскольку postmaster это устаревший псевдоним для postgres.
Если вы предпочитаете вариант с SQL, то подключитесь к интерактивному терминалу:
Также вам может пригодиться один из следующих вариантов
Как инициализировать базу данных PostgreSQL
Остановите службу, если она запущена:
Директория /var/lib/postgres/ должна принадлежать пользователю postgres:
Смените пользователя на postgres:
Выполните инициализацию БД:
Если вы столкнулись с ошибкой:
То найдите расположение файла initdb:
И укажите до него полный путь в команде инициализации:
Нажмите CTRL+D
Запустите службу PostgreSQL:
Создайте нового пользователя (например, user):
При желании, вы можете установить пароль для пользователя, это делается командой с ключом -W:
Создайте базу данных (например, my-first-db):
Как подключиться к локальному серверу PostgreSQL
Для подключения к интерактивному терминалу PostgreSQL используется команда psql.
Примеры синтаксиса команд:
Для psql требуется указать имя пользователя и если он не указан, то пересылается имя текущего пользователя системы, который скорее всего отсутствует в базе данных PostgreSQL, что вызывает ошибку. По умолчанию создаётся пользователь postgres, поэтому без дополнительной настройке вы можете подключиться к серверу PostgreSQL следующим образом:
Какой конфигурационный файл использует PostgreSQL
Конфигурационный файл PostgreSQL носит имя postgresql.conf.
В системе может быть несколько конфигурационных файлов PostgreSQL. Вы можете найти их командой:
Что особенно важно, systemd может использовать свои собственные конфигурационные файлы, например:
Если вы настраиваете PostgreSQL, но после перезапуска службы с помощью systemd (systemctl) изменения не применяются, возможно, вы просто редактируете неверный файл.
Также конфигурационный файл имеется в директории с базой данных, например:
С пакетом PostgreSQL могут поставляться образцы конфигурационных файлов, например:
Как обновить базу данных PostgreSQL при переходе на новую версию
Сообщение при обновлении пакетов Linux:
Оно означает, что в системе 2 установленные версии PostgreSQL:
Если запустить службу PostgreSQL командой:
И проверить версию командой:
То будет выведено следующее:
То есть по умолчанию используется 13, устаревшая версия.
Удаление старых версий пакетов, например, командой:
ситуацию не меняет. Если вам нужно перенести базы данных из устаревшей версии в новую, то верните устаревшие пакеты, если вы успели их удалить.
Последующие действия подразумевают, что вы
1) установили новую версию PostgreSQL, но ещё не использовали её, то есть не сохраняли базы данных, поскольку файлы новой версии будут удалены.
2) хотите перенести старые база данных в новый формат
С помощью следующей команды просмотрите доступные кластеры:
На скриншоте только один из них online (я успел удалить пакет postgresql-13), но у вас оба должны быть online, иначе перенос базы данных не удастся.
Пример правильного вывода:
Как можно увидеть, обе версии 13 и 14 в настоящее время установлены и запущены. Держите в уме, что при переносе старой базы данных в новый формат вам понадобиться двойной объём места на диске, поскольку pg_upgradecluster копирует данные.
Процедура обновления включает в себя следующее:
1. Удаляем данные новой версии:
2. Запускаем процедуру обновления кластера:
3. Когда операция будет завершена, дважды проверьте, что всё работает
4. Удалите старую версию
Это показывает суть обновления кластера. Конечно, в конкретной вашей ситуации могут быть нюансы: другие номера версий, либо другое расположение файлов с базами данных.
Вновь проверяем версию:
Теперь используется 14, то есть самая последняя версия.
В чём разница между postgres и psql
postgres
Чтобы запустить сервер в однопользовательском режиме, используйте такую команду, как
Чтобы запустить postgres в фоновом режиме со значениями по умолчанию, введите:
Чтобы запустить postgres с определенным портом, например, 1234:
Чтобы подключиться к этому серверу с помощью psql, укажите этот порт с параметром -p:
или установите переменную окружения PGPORT:
psql
psql — это интерфейс для PostgreSQL на основе терминала. Он позволяет вам вводить запросы в интерактивном режиме, отправлять их в PostgreSQL и просматривать результаты запросов. В качестве альтернативы ввод может быть из файла или из аргументов командной строки. Кроме того, psql предоставляет ряд мета-команд и различных функций, подобных оболочке, для облегчения написания сценариев и автоматизации широкого спектра задач.
Пример запуска psql:
Запуск psql от пользователя postgres, который создаётся по умолчанию:
Ошибки PostgreSQL
psql: error: не удалось подключиться к серверу: Нет такого файла или каталога
При попытке подключиться к серверу PostgreSQL или выполнить запрос на сервере PostgreSQL, например:
вы можете столкнуться с ошибкой:
В англоязычной версии эта ошибка выглядит так:
Эта ошибка означает, что служба PostgreSQL не запущена, для её запуска выполните команду:
Альтернативный вариант запуска службы следующий:
Другой возможной причиной ошибки может быть то, что psql ищет файл сокета в неверной директории: например, файл сокета помещён в /tmp, а psql ищет его в /run/postgresql/. В этом случае вы можете с помощью опции —host явно указать директорию, в которой находится сокет:
FATAL: не удалось создать файл блокировки «/run/postgresql/.s.PGSQL.5432.lock»: Нет такого файла или каталога
При запуске системы БД, например, следующей командой:
Вы можете столкнуться с ошибкой:
В англоязычной версии ошибка выглядит так:
Причина ошибки в том, что не удалось создать файл блокировки в указанной директории. Путь директории может быть разным в различных дистрибутивах, например, /var/run/postgresql/ или как в сообщении выше /run/postgresql/. Вы можете разрешить проблему двумя способами:
Первый вариант — создаём директорию /run/postgresql/ и назначаем её владельцем пользователя postgres:
Второй вариант — открываем конфигурационный файл postgresql.conf (у вас может быть другое расположение)
И добавляем туда следующую запись:
sudo: postgres: command not found
Если при использовании postgres вы столкнулись с ошибкой:
то у этой проблемы может быть две возможных причины:
1. Не установлен пакет postgresql.
Установите его одной из следующих команд.
В Debian, Kali Linux, Linux Mint, Ubuntu и их производных:
В Arch Linux, Manjaro, BlackArch и их производных:
2. Исполнимый файл postgres находится за пределами $PATH
Это необязательно говорит о проблеме — такой подход может использоваться для возможности иметь на одном компьютере сразу несколько серверов PostgreSQL.
Найдите исполнимый файл
Как можно видеть на скриншоте, исполнимый файл присутствует для двух версий сервера:
Теперь вместо postgres используйте полный путь в команде запуска, например:
psql: ошибка: ВАЖНО: роль «» не существует
При попытке запуска интерактивного терминала PostgreSQL
Вы можете столкнуться с ошибкой:
Имя пользователя может быть другим — там будет показано имя того пользователя, котоырй пытается выполнить вход.
В англоязычной версии ошибка выглядит так:
Для psql необходимо имя пользователя и если оно не указано явно, то передаётся имя пользователя системы. Но поскольку данный пользователь не существует на сервере PostgreSQL, то возникает указанная выше ошибка.
Вы можете создать пользователя с любы именем, как это показано выше и ошибка исчезнет.
По умолчанию присутствует пользователь postgres, поэтому вы можете подключиться от его имени:
При запуске postgres вы можете столкнуться с ошибкой:
В англоязычной версии:
Суть ошибки в том, что необходимо указать конфигурационный файл в опции командной строки или в переменной окружения. Как вариант — можно указать путь до базы данных, содержащий конфигурационный файл. Например:
Конфигурационный файл называется postgresql.conf, но нужно указать не его, а директорию, в которой он содержится. Например:
initdb: command not found
Смотрите объяснение данной проблемы, а также дополнительные пути устранения в описании аналогичной ошибки: sudo: postgres: command not found
Найдите initdb с помощью:
И используйте в ваших командах абсолютный путь до файла initdb нужной вам версии, например:
Как проверить версию PostgreSQL
PostgreSQL, часто известный просто как Postgres, представляет собой универсальную объектно-реляционную систему управления базами данных с открытым исходным кодом.
В некоторых ситуациях важно знать, какая версия сервера PostgreSQL установлена и запущена в вашей системе. Например, если вы устанавливаете приложение, для которого требуется определенная версия PostgreSQL, вам необходимо узнать версию вашего сервера PostgreSQL.
В этой статье мы объясним, как узнать, какая версия сервера PostgreSQL работает в вашей системе.
Управление версиями PostgreSQL
Версии выпусков PostgreSQL контролируются по следующей схеме:
Например, в PostgreSQL 12.1 12 — это основная версия, а 1 — дополнительная версия.
MAJOR — Начиная с PostgreSQL 10, каждый новый основной выпуск увеличивает MAJOR часть версии на единицу, например, 10, 11 или 12. До PostgreSQL 10 основные версии представлялись десятичным числом, например 9.0 или 9.6.
MINOR — второстепенный номер выпуска — это последняя часть номера версии. Например, 11.4 и 11.6 являются второстепенными версиями, которые являются частью PostgreSQL версии 11, а 9.6.15 и 9.6.16 являются частью PostgreSQL версии 9.6.
Основные выпуски PostgreSQL с новыми функциями обычно выпускаются один раз в год. Каждый основной выпуск поддерживается в течение 5 лет.
Использование командной строки
Команда выведет версию PostgreSQL:
Вы можете найти путь к двоичному файлу с помощью команды locate или find :
Результат должен выглядеть примерно так:
Найдя путь к двоичному файлу, вы можете использовать его для получения версии сервера PostgreSQL:
Версию клиентской утилиты PostgreSQL, psql можно найти с помощью следующей команды:
Результат будет выглядеть примерно так:
psql — это интерактивная утилита командной строки, которая позволяет вам взаимодействовать с сервером PostgreSQL.
Использование оболочки SQL
Другой способ определить версию сервера PostgreSQL — войти в запрос SQL сервера и использовать оператор SQL для печати версии.
Вы можете получить доступ к оболочке PostgreSQL с помощью клиента с графическим интерфейсом, например pgAdmin, или с помощью psql :
Следующий оператор отображает версию сервера PostgreSQL вместе с информацией о сборке:
Если вы хотите получить только номер версии сервера PostgreSQL, используйте следующий запрос:
Выводы
В этой статье мы показали несколько различных вариантов того, как найти версию сервера PostgreSQL, работающую в вашей системе.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
GIS-LAB
Географические информационные системы и дистанционное зондирование
Руководство по PostGIS
Глава 2. Установка
2.1. Требования
PostGIS имеет следующие требования для сборки и использования:
Полная инсталляция PostgreSQL (включая серверные заголовки). PostgreSQL можно взять на http://www.postgresql.org. Необходима версия 7.2 или выше.
Компилятор GNU C (gcc). Некоторые другие компиляторы ANSI C тоже могут быть использованы для компиляции PostGIS, но у вас будет гораздо меньше проблем, если будете использовать gcc.
(Рекомендуется) Библиотека проекционных преобразований Proj4. Библиотека Proj4 используется в PostGIS для поддержки работы с проекционными преобразованиями координат. Proj4 можно скачать с http://www.remotesensing.org/proj.
(Рекомендуется) Геометрическая библиотека GEOS. Библиотека GEOS используется в PostGIS для проведения геометрических тестов (ST_Touches(), ST_Contains(), ST_Intersects()) и операций (ST_Buffer(), ST_Union(), ST_Difference()). GEOS можно скачать с http://geos.refractions.net.
2.2. PostGIS
Модуль PostGIS является расширением серверной части PostgreSQL. Поэтому для компиляции PostGIS 1.3.3 необходим полный доступ к заголовками сервера PostgreSQL. Исходный код PostgreSQL можно скачать с http://www.postgresql.org.
PostGIS 1.3.3 может быть собран только с PostgreSQL версии 7.2.0 или более старшей. Предыдущие версии PostgreSQL не поддерживаются.
Замечание
Если вы планируете использовать функциональность GEOS, то вы можете попробовать связать PostgreSQL со стандартной библиотекой C++:
Это позволяет обойти мнимые ошибки C++ в старых средствах разработки. Если вы столкнулись с непонятными проблемами (неожидано закрывается сервер или что-то подобное), попробуйте этот подход. Разумеется, он подразумевает повторную компиляцию вашего PostgreSQL.
Все файлы устанавливаются с использованием информации, предоставленной pg_config.
Теперь серверные расширения PostGIS загружены и готовы к использованию.
2.2.1.Создание пространственных баз данных, совместимых с PostGIS, с помощью шаблона разработки
Некоторые пакетные дистрибутивы PostGIS (особенно инсталляторы под Win32 для PostGIS >= 1.1.5) загружают функции PostGIS в шаблон базы данных template_postgis. Если в вашей установке PostgreSQL содержится база данных template_postgis, то пользователи и/или приложения могут создавать пространственно-совместимые базы данных с помощью единственной команды. Заметим, что в обоих случаях пользователь базы данных должен иметь права на создание новых баз данных.
2.2.2. Обновление
Обновление существующих пространственных баз данных может оказаться непростой задачей, требующей замены или введения новых определений объектов PostGIS.
К несчастью, не все определения могут быть легко заменены в существующей базе данных, поэтому лучше использовать dump/reload.
PostGIS предоставляет процедуру SOFT UPGRADE для незначительных релизов и исправлений ошибок, и процедуру HARD UPGRADE для значительных релизов.
2.2.2.1. SOFT-обновление
SOFT-обновление заключается в выполнении скрипта lwpostgis_upgrade.sql для вашей пространственной базе данных:
Не стесняйтесь сначала использовать SOFT-обновление, так как если скрипт не может его выполнить, он будет отменен и вы будете оповещены о необходимости выполнения HARD-обновления.
Замечание
Если вы не нашли файл lwpostgis_upgrade.sql, вероятно, вы используете версию ниже 1.1 и должны создать этот файл самостоятельно. Это делается следующей командой:
2.2.2.2.HARD-обновление
Под HARD-обновлением мы имеем в виду полный dump/reload баз данный использующих PostGIS. HARD-обновление необходимо, когда изменяются встроенные объекты PostGIS или когда невозможно SOFT-обновление. В приложении Примечания к релизам сообщается, необходим ли вам dump/reload (HARD-обновление) для перехода на тот или иной релиз.
Пусть база данных, которую вы хотите обновить, называется «olddb». Создайте ее «custom-format» дамп.
Восстановим дамп после обновления PostGIS в новую базу данных. Новая база данных не обязательно должна существовать. Скрипт postgis_restore принимает параметры createdb после имени файла с дампом, и это может быть использовано, например, если вы используете нестандартную кодировку символов в своей базе данных. Назовем эту базу «newdb» и зададим на ней кодировку символов UNICODE:
Убедитесь, что все объекты восстанавливаемого дампа были реально восстановлены и не конфликтуют с определениями из lwpostgis.sql.
Если производится обновление PostgreSQL = 8.0, вы можете удалить столбцы attrelid, varattnum и stats в таблице geometry_columns, которые больше не нужны. Но их сохранение также безвредно. ИХ УДАЛЕНИЕ, КОГДА ОНИ ДЕЙСТВИТЕЛЬНО НУЖНЫ, ВЕСЬМА БОЛЕЗНЕННО!
Таблица spatial_ref_sys восстанавливается из дампа для обеспечения сохранности пользовательских дополнений, но новый дистрибутив, возможно, модифицирует ее. Поэтому вам следует сделать резервную копию ее содержимого, удалить таблицу и заново ее создать. Если вы создавали дополнения, предполагается, что вы знаете как их сохранить перед обновлением таблицы. Их замена на новые совершается так:
2.2.3. Обычные проблемы
Есть несколько вещей, которые могут неожиданно помешать вашей установке или обновлению.
Также проверьте, что необходимые изменения внесены в начало Makefile.config. Они включают следующие изменения:
2.3. JDBC
Расширения JDBC предоставляют соответствующие объекты Java внутренним типам PostGIS. Эти объекты могут быть использованы для написания Java-клиентов, совершающих запросы к базе данных PostGIS, получающих или обрабатывающих данные ГИС.
Драйверы PostgreSQL JDBC могут быть загружены с http://jdbc.postgresql.org.
2.4. Загрузчик/дампер
Загрузчик данных и дампер автоматически собирается и устанавливается как часть сборки PostGIS. Собрать и установить его вручную можно так:
Загрузчик вызывается как shp2pgsql и конвертирует ESRI Shape-файлы в SQL подходящий для загрузки в PostGIS/PostgreSQL. Дампер вызывается как pgsql2shp и конвертирует таблицы (или запросы) в ESRI Shape-файлы. Более подробная документация доступна в онлайн-справке и руководстве.