Не удается подключиться к postgresql на порту 5432. Linux для postgresql


Postgres Pro Standard : Документация: 9.6: 16.1. Установка Postgres Pro Standard в Linux : Компания Postgres Professional

16.1. Установка Postgres Pro Standard в Linux

Для систем на базе Linux Postgres Pro Standard поставляется в виде двоичных пакетов. Двоичный дистрибутив Postgres Pro состоит из нескольких пакетов, примерно таких же, что и официальный дистрибутив PostgreSQL для этих операционных систем.

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

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

16.1.1. Установка в системах CentOS и Red Hat Enterprise Linux

16.1.1.1. Выбор устанавливаемых пакетов

Для Red Hat Enterprise Linux и производных систем, таких как CentOS, Oracle Linux и Rosa Enterprise Linux Server дистрибутив Postgres Pro разделён на следующие пакеты:

ПакетОписание
postgrespro96Стандартные клиентские приложения: psql, pg_dump и т. д.
postgrespro96-libsОбщие библиотеки, требующиеся для развёртывания клиентских приложений
postgrespro96-serverСервер Postgres Pro и серверный язык программирования PL/pgSQL
postgrespro96-contribДополнительные расширения и программы, разворачиваемые на серверах баз данных
postgrespro96-pg_probackupУтилита pg_probackup
pg_repackУтилита для реорганизации таблиц
postgrespro96-develЗаголовочные файлы и библиотеки для разработки клиентских приложений и серверных расширений
postgrespro96-plperlРеализация языка Perl для программирования на стороне сервера
postgrespro96-plpythonРеализация языка Python для программирования на стороне сервера
postgrespro96-pltclРеализация языка Tcl для программирования на стороне сервера
postgrespro96-docsДокументация на английском языке
postgrespro96-docs-ruДокументация на русском языке
postgrespro96-testТестовые скрипты для сервера

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

  • postgrespro96-server

  • postgrespro96

  • postgrespro96-libs

Для использования дополнительных расширений Postgres Pro вы должны также установить пакет postgrespro96-contrib.

По умолчанию файлы устанавливаются в каталог /usr/pgpro-9.6. Убедитесь в том, что каталог /usr/pgpro-9.6/bin добавлен в вашу переменную окружения PATH.

16.1.1.2. Изменение базы данных по умолчанию

При установке пакета postgrespro96-server база данных по умолчанию не создаётся. Создаётся только системный пользователь postgres, который будет владельцем файлов баз данных и серверных процессов.

Чтобы создать базу данных по умолчанию:

  • В системах на базе SysVinit, например, Red Hat Enterprise Linux 6 и производных, выполните:

    service postgrespro-9.6 initdb
  • В системах на базе systemd, например Red Hat Enterprise Linux 7 или CentOS 7, запустите вспомогательный скрипт /usr/pgpro-9.6/bin/pg-setup.

База данных по умолчанию создаётся в каталоге /var/lib/pgpro/9.6/data. Сменить этот каталог можно, изменив соответствующий параметр в файле /etc/sysconfig/pgsql/postgrespro-9.6.

16.1.1.3. Установка нескольких экземпляров Postgres Pro

Для запуска нескольких экземпляров сервера Postgres Pro с разными каталогами данных создайте копию или символическую ссылку файла /etc/init.d/postgresql с другим именем и соответствующие файлы в /etc/sysconfig и символические ссылки в каталогах уровней выполнения.

Если требуется, вы можете в одной системе одновременно установить серверы PostgreSQL, Postgres Pro и Postgres Pro Enterprise.

Имя файла sysconfig, считываемого скриптом в init.d, определяется именем этого скрипта.

16.1.2. Установка в системах на базе Debian

16.1.2.1. Выбор устанавливаемых пакетов

Для систем на базе Debian (Debian, Ubuntu, Astra Linux) дистрибутив Postgres Pro разделён на следующие пакеты:

ПакетОписание
postgrespro-libecpg6Библиотеки времени выполнения для препроцессора ECPG
postgrespro-libecpg-compat3Библиотеки совместимости для программ, скомпилированных со старым ECPG
postgrespro-libecpg-devПрепроцессор ECPG для встраиваемого SQL
postgrespro-libpgtypes3Библиотека времени выполнения libpgtypes для программ, собранных с ECPG
postgrespro-libpq5Библиотеки времени выполнения для клиентских программ Postgres
postgrespro-libpq-devФайлы для разработки клиентских программ
postgrespro-9.6Сервер Postgres Pro
postgrespro-9.6-dbgОтладочная информация для сервера Postgres Pro
postgrespro-client-9.6Клиентские программы для взаимодействия с сервером Postgres Pro
postgrespro-contrib-9.6Дополнительные модули и расширения
postgrespro-doc-9.6Документация на английском языке
postgrespro-doc-ru-9.6Документация на русском языке
postgrespro-pg-probackup-9.6Утилита pg_probackup
postgrespro-plperl-9.6Серверный язык PL/Perl
postgrespro-plpython3-9.6Серверный язык PL/Python на базе Python 3
postgrespro-plpython-9.6Серверный язык PL/Python на базе Python 2
postgrespro-pltcl-9.6Серверный язык PL/Tcl
postgrespro-server-dev-9.6Файлы для разработки серверных расширений с использованием инфраструктуры PGXS

Для серверных инсталляций требуется пакет postgrespro-9.6 (который зависит от postgrespro-contrib-9.6). Другие связанные с сервером пакеты, например, пакеты с серверными языками и утилитами типа pg_probackup можно не устанавливать.

Для клиентских инсталляций требуются только пакеты postgrespro-libpq5 и postgrespro-client-9.6. Если вы используете независимые приложения и вам не нужны стандартные клиентские утилиты, такие как psql, вы можете установить только пакет postgrespro-libpq5.

Для систем Debian файлы для разработчиков разделены на следующие пакеты:

  • postgrespro-libpq-dev — пакет для разработчиков, требующийся для компиляции клиентских программ.

  • postgrespro-libecpg-dev — пакет для разработки программ, использующих ECPG, препроцессор встраиваемого SQL.

  • postgrespro-server-dev-9.6 — пакет для разработчиков, требующийся для компиляции серверных расширений.

16.1.2.2. Изменение базы данных по умолчанию

Серверные пакеты для Debian создают базу данных по умолчанию во время установки сервера; также можно создать дополнительные наборы баз, называемые кластерами, используя скрипт pg_createcluster. Все эти кластеры управляются системными средствами (подсистемой SysVinit в старых дистрибутивах либо systemd в новых).

Скрипт pg_createcluster также позволяет импортировать существующие базы данных в систему управления службами Debian. Он пытается автоматически включить SSL для создаваемого кластера, а для этого необходимо, чтобы пользователь postgres был членом группы ssl-cert и в /etc/ssl/certs находился подходящий сертификат.

Дистрибутив Postgres Pro для систем на базе Debian использует нестандартную схему каталогов для кластера баз данных. По умолчанию файлы конфигурации и данные Postgres Pro размещаются в одном каталоге, однако политика Debian требует, чтобы файлы конфигурации находились в /etc. Таким образом в системах на базе Debian параметр PGDATA всегда указывает на подкаталог внутри /etc, где располагаются только postgresql.conf, pg_hba_conf и несколько других файлов конфигурации. Фактическое расположение данных определяется параметром data_directory в postgresql.conf.

16.1.2.3. Установка нескольких экземпляров Postgres Pro

Пакеты postgrespro-common и postgrespro-client-common образуют универсальную инфраструктуру, позволяющую запускать различные версии серверов PostgreSQL, Postgres Pro и Postgres Pro Enterprise одновременно и таким образом позволяют упростить обновление баз данных.

Дополнительную информацию об особенностях установки в инфраструктуре Debian можно найти в следующих страницах man: pg_createcluster(1), pg_ctlcluster(1), pg_conftool(1), postgresql-common(5), postgresqlrc(5) и user_clusters(5).

В Debian реализован скрипт pg_wrapper(1), позволяющий вызывать клиентские программы для нужной версии вашего продукта на базе PostgreSQL. С ним связаны ссылки /usr/bin/psql, /usr/bin/pg_dump и т. д. Если установлено несколько продуктов на базе PostgreSQL, он вызывает программы последних версий, если только явно не требуется другое.

Примечание

Дистрибутив для Debian с программами Postgres Pro содержат две копии утилиты pg_config, одну в пакете libpq-dev и ещё одну — в пакете postgrespro-server-dev-9.6. Это связано с тем, что и клиентские программы, и серверные расширения используют эту утилиту для определения расположения файлов Postgres для разработки. Поэтому если вы планируете разрабатывать клиентские приложения и серверные расширения в одной системе, необходимо установить пакеты libpq-dev и postgrespro-server-dev-X.X от одного продукта Postgres.

16.1.3. Установка в Альт Линукс

16.1.3.1. Выбор устанавливаемых пакетов

Для Альт Линукс дистрибутив Postgres Pro разделён на следующие пакеты:

ПакетОписание
libecpg6.8Библиотеки времени выполнения для программ, использующих ECPG
libecpg6.8-develПрепроцессор ECPG, встраиваемого SQL
libecpg6.8-devel-static
Статические библиотеки для ECPG
libpq5.9Клиентская библиотека libpq
libpq5.9-develФайлы для разработки с использованием libpq
libpq5.9-devel-staticСтатические библиотеки для компиляции клиентских программ
postgrespro9.6Стандартные клиентские программы, в частности, psql, и страницы man по командам SQL
postgrespro9.6-contribРасширения, загружаемые на сервере Postgres Pro
postgrespro9.6-develФайлы для компиляции серверных расширений с использованием инфраструктуры PGXS
postgrespro9.6-devel-staticСтатические библиотеки, необходимые для компиляции расширений
postgrespro9.6-docsДокументация на английском языке
postgrespro9.6-docs-ruДокументация на русском языке
postgrespro9.6-perlЯзык программирования PL/Perl
postgrespro9.6-pg_probackupУтилита pg_probackup
postgrespro9.6-pythonЯзык программирования PL/Python
postgrespro9.6-serverСервер Postgres Pro Enterprise
postgrespro9.6-tclЯзык программирования PL/Tcl

Для всех пакетов с двоичными файлами имеются соответствующие пакеты -debuginfo.

Для серверных инсталляций требуется пакет postgrespro-9.6-server. Для минимальной клиентской инсталляции требуется только пакет libpq5.9. Обычно клиентам также нужен пакет postgrespro-9.6.

Утилита pg_config поставляется только в составе пакета postgrespro-9.6-devel, поэтому вам нужно установить этот пакет, если вы планируете компилировать клиентские программы, при сборке которых используется pg_config.

16.1.3.2. Установка нескольких экземпляров Postgres Pro

В Альт Линукс в один момент времени не может быть установлено несколько экземпляров PostgreSQL. Если вы устанавливаете новую версию поверх старой, новые исполняемые файлы заменят старые. Чтобы произвести обновление базы данных, используя утилиту pg_upgrade, необходимо иметь и новые, и старые исполняемые файлы postgres. Поэтому предустановочный скрипт копирует существующий исполняемый файл postgres и разделяемую библиотеку libpq в /usr/lib64/pgsql/9.6/backup. Передайте имя этого каталога pg_upgrade в аргументе -b.

16.1.4. Установка в SUSE Linux

16.1.4.1. Выбор устанавливаемых пакетов

Для SUSE дистрибутив Postgres Pro разделён на следующие пакеты:

ПакетОписание
libecpg6Библиотеки времени выполнения для программ, использующих ECPG
libpq5Библиотеки времени выполнения для клиентских программ Postgres
postgrespro96Стандартные клиентские программы, в частности, psql, и страницы man по командам SQL
postgrespro96-contribЗагружаемые модули и расширения для сервера
postgrespro96-develФайлы для разработки клиентских программ и серверных расширений
postgrespro96-docsДокументация на английском языке
postgrespro96-docs-ruДокументация на русском языке
postgrespro96-pg_probackupУтилита pg_probackup
postgrespro96-plperlЯзык программирования PL/Perl
postgrespro96-plpythonЯзык программирования PL/Python
postgrespro96-pltclЯзык программирования PL/Tcl
postgrespro96-serverСервер Postgres Pro
postgrespro96-testНабор регрессионных тестов для сервера Postgres Pro

Для серверных инсталляций требуются пакеты postgrespro96-server, postgrespro96 и postgrespro96-libs. Для использования дополнительных расширений Postgres Pro вы должны также установить пакет postgrespro96-contrib.

16.1.4.2. Изменение базы данных по умолчанию

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

service postgresql start

База данных по умолчанию в SUSE создаётся при первом запуске службы. Настроить её расположение, локаль и другие параметры можно в /etc/sysconfig/postgrespro.

16.1.4.3. Установка нескольких экземпляров Postgres Pro

В системах SUSE установить разные версии клиентских программ нельзя.

postgrespro.ru

Установка и настройка PostgreSQL и pgAdmin в ОС Linux OpenSUSE 13.2 | Info-Comp.ru

Система управления базами данных PostgreSQL очень популярна, к тому же она бесплатная и отлично подходит для начинающих администраторов и программистов баз данных, поэтому сейчас мы рассмотрим возможность установки и настройки данной СУБД в операционной системе Linux OpenSUSE 13.2.

С СУБД PostgreSQL и средством администрирования и разработки баз данных pgAdmin мы не раз уже сталкивались, в основном это касалось программирования на языке SQL и PL/pgSQL например в материалах: Как использовать курсор в функциях на PL/pgSQL, Как написать функцию на PL/pgSQL, но также затрагивали и администрирование, и на данный момент мы знаем, как создавать архив базы PostgreSQL, а также как восстановить базу данных PostgreSQL. Но как это не странно мы не разу не разговаривали о том, как же установить и настроить данную СУБД и средство ее администрирования, поэтому сегодня я предлагаю научиться, это делать.

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

Устанавливать и настраивать PostgreSQL и pgAdmin мы будем на популярной операционной системе Linux OpenSUSE 13.2. Еще раз повторюсь, что данным материалом не стоит руководствоваться, если Вы хотите развернуть PostgreSQL в масштабах предприятия, так как все что мы будем рассматривать ниже только для домашнего (локального) использования в целях обучения, потому что на многие настройки в домашнем использовании мы просто не будем обращать внимания, например на метод аутентификации (забегу вперед мы будем настраивать методом trust), который даже пароль не требует, и соответственно абсолютно не подходит для корпоративного использования.

Материал будет выглядеть следующим образом, сначала мы рассмотрим, что же вообще такое PostgreSQL и pgAdmin, а затем установим их двумя способами в ОС Linux OpenSUSE 13.2. В первом случае будем использовать графический интерфейс YaST, а во втором, традиционным для Linux способом, будем использовать терминал, затем мы настроем PostgreSQL и в заключение подключимся к базе, используя самое популярное средство, для PostgreSQL, это pgAdmin.

Что такое PostgreSQL?

PostgreSQL – это бесплатная система управления базами данных (СУБД), которая реализована практически под все операционные системы такие как: Linux, Solaris, Windows и поэтому является одной из самых популярных СУБД в мире. PostgreSQL соответствует всем стандартам полноценной СУБД и неплохо конкурирует с такими гигантами в этой области как Oracle и MS SQL Server.

В PostgreSQL для программирования используется процедурное расширение языка SQL, а именно PL/pgSQL (Procedural Language/PostGres Structured Query Language), кстати, он немного похож на PL/SQL, который используется в Oracle.

В связи с популярностью, для PostgreSQL написано множество библиотек для взаимодействия со многими известными языками программирования, например: C++, Java, PHP, Perl, Python и другие.

Официальный сайт - http://www.postgresql.org/

Что такое pgAdmin?

pgAdmin – это бесплатная среда разработки и администрирования СУБД PostgreSQL. pgAdmin так же как и сама СУБД PostgreSQL реализован для всех известных платформ, например: Linux, FreeBSD, Solaris, Mac OSX и Windows.

С помощью pgAdmin можно писать запросы, процедуры, функции, а также администрировать PostgreSQL, используя при этом отличный графический интерфейс.

Официальный сайт - http://www.pgadmin.org/

Примечание! Как я уже сказал установку, мы будем производить на операционную систему Linux OpenSUSE 13.2 в графической оболочке KDE, поэтому при просмотре скриншотов прошу это учитывать. Также хочу заметить, что на момент написания статьи были доступны следующие версии, а именно Postgresql 9.3 и pgAdmin 1.18.1, поэтому именно эти версии мы и будем устанавливать.

Установка PostgreSQL и pgAdmin в OpenSUSE 13.2 через YaST

Первое что нам необходимо сделать это, конечно же, запустить «Установка/удаление программ», это делается следующим образом, Меню->Компьютер->Установка/удаление программ

Для этих действий естественно требуются права суперпользователя (root), поэтому далее появится окно ввода пароля, мы соответственно вводим и жмем «ОК»

В последствии у нас откроется интерфейс YaST для установки и удаления программ. Мы в форму поиска вводим postgresql и жмем «Поиск». Затем ищем и выбираем компоненты, а именно:

  • postgresql;
  • postgresql-server;
  • postgresql-contrib;
  • pgadmin3.

При этом они выделяются большими галочками, а дополнительные, требуемые для установки пакеты выделяются, автоматически, маленькими галочками, жмем «Принять»

Затем так как у меня еще не был установлен flash-player, он выбрался автоматически и соответственно будет установлен, и для этого необходимо согласится с условиями лицензионного соглашения, жму «Принять» (если у Вас он уже установлен, то этого окошка у Вас может и не быть).

Затем будет представлен список пакетов, которые будут установлены, практически все они были выбраны автоматически, но лучше всех их установить. Жмем «Продолжить»

Затем начнется загрузка, а следом и установка этих пакетов

А по завершении установки YaST выведет отчет об установке, из которого мы увидим небольшую статистку, например, сколько времени заняла установка, у меня это всего 4 минуты, а также количество установленных пакетов, размер установки и еще другую информацию, жмем «Завершить»

Установка через YaST завершена.

Установка PostgreSQL и pgAdmin в OpenSUSE 13.2 с помощью терминала

Открываем терминал (в KDE это Konsole) путем нажатия Меню->Терминал

Также как и через YaST сначала необходимо получить права суперпользователя, для этого просто пишем su, жмем enter и набираем пароль (соответственно суперпользователя) и снова жмем enter

su вводим пароль

Затем, используя утилиту zypper, устанавливаем нужные нам пакеты, делается это вот так

zypper in postgresql postgresql-server postgresql-contrib pgadmin3 жмем enter

Затем появится информация о том, какие пакеты будут установлены, мы соответственно соглашаемся, вводим Y и жмем enter

В последствии загрузятся необходимые пакеты, и начнется установка.

После установке всех пакетов, установка PostgreSQL и pgadmin из терминала будет завершена.

Настройка PostgreSQL в OpenSUSE 13.2

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

И для начала меняем пароль для пользователя Postgres (так как по умолчанию его просто нет), естественно, что это делается от имени суперпользователя, поэтому, как и при установке пишем su и вводим пароль. Затем командой passwd задаем пароль для пользователя postgres.

passwd postgres ввод

Затем проверяем статус postgresql т.е. запущен ли сервер или нет, это делается следующей командой

/etc/init.d/postgresql status

Если в ответ мы получили unused значит postgresql не инициализирован.

Поэтому нам необходимо инициализировать PostgreSQL и лучше это сделать от имени пользователя  postgres. Для инициализации postgresql переключаемся на пользователя postgres, все той же командой su, только после пишем логин пользователя, от имени которого мы хотим выполнять команды, т.е. postgres

su postgres initdb -D /var/lib/pgsql/data/

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

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

/etc/init.d/postgresql start

И можем сразу проверить статус уже знакомой командой

/etc/init.d/postgresql status

Сейчас статус должен быть running это значит, что postgresql работает.

Теперь осталось поместить в автозагрузку postgresql, для того чтобы каждый раз после включения компьютера не запускать сервер postgresql вручную. Если Вы не хотите, чтобы postgresql запускался автоматически при старте системы, то можете не запускать следующую команду

chkconfig postgresql on

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

Закрываем терминал.

Настройка pgAdmin  - подключение к базе PostgreSQL

Для запуска pgAdmin открываем Меню->Приложения->Система->Утилита администрирования баз данных PostgreSQL

После открытия жмем «Добавить подключение к серверу»

Далее заполняем необходимые поля для подключения к серверу, а именно: имя подключения, хост (в нашем случае localhost), порт по умолчанию, имя пользователя тоже, т.е. postgres, пароль не требуется, галочку «Сохранить пароль» можете оставить, и в поле пароль написать что-нибудь, чтобы бы каждый раз при подключении не выходило окно ввода пароля. Жмем «ОК»

Далее нам скажут, что пароль будет храниться в файле .pgpass, в нашем случае это и не важно, так как у нас нет пароля, мы его ввели, только для того чтобы данное окно не выходило. Жмем «ОК».

Затем произойдет подключение, и Вы можете уже плюсиками раскрывать подключение и соответственно видеть все объекты, которые есть на этом сервере. На данный момент у нас есть одна база postgres, Вы соответственно можете создавать свои базы и другие объекты, в общем тренироваться.

На этом наш сегодняшний урок, посвященный PostgreSQL окончен, в следующих материалах, мы, конечно же, вернемся к теме PostgreSQL и pgAdmin, а пока на этом все. Удачи!

Похожие статьи:

info-comp.ru

Postgres Pro Enterprise : Документация: 10: 17.1. Установка Postgres Pro Enterprise в Linux : Компания Postgres Professional

17.1. Установка Postgres Pro Enterprise в Linux

Для систем на базе Linux Postgres Pro Enterprise поставляется в виде двоичных пакетов. Все двоичные дистрибутивы Postgres Pro состоят из нескольких пакетов. Структура пакетов отличается от структуры ванильного PostgreSQL и поддерживает следующие режимы установки:

17.1.1. Поддерживаемые дистрибутивы Linux

Двоичные пакеты Postgres Pro предоставляются для следующих систем на базе Linux:

  • Системы Red Hat Enterprise Linux (RHEL) и производные от них: CentOS 6/7, Red Hat Enterprise Linux 7, Oracle Linux 7, Rosa Enterprise Linux Server 6, РОСА «КОБАЛЬТ» (серверная редакция) на платформе РОСА 6/7, Гослинукс 6, МСВСфера 6.3

  • Системы на базе Debian: Debian 8/9, Ubuntu 16.04/18.04, Astra Linux «Смоленск» 1.5

  • Альт Линукс 8, Альт Линукс СПТ 7.0

  • SUSE Linux Enterprise Server 11/12.1

Примечание

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

17.1.2. Быстрая установка и настройка

Если вам нужно установить только один экземпляр Postgres Pro и вы не собираетесь использовать никакие другие продукты на базе PostgreSQL в вашей системе, вы можете использовать режим быстрой установки. Типичная процедура установки в этом случае выглядит так:

  1. Подключите репозиторий пакетов, предназначенный для вашей операционной системы. Конкретные адреса репозиториев и команды для их подключения в поддерживаемых дистрибутивах Linux вы можете узнать у специалистов поддержки Postgres Pro.

  2. Установите пакет postgrespro-ent-10. При этом по зависимостям установятся все требуемые компоненты, вместе с документацией, будет создана база данных по умолчанию, запущен сервер баз данных и настроен автозапуск сервера при загрузке системы, а все предоставляемые программы станут доступными в пути PATH. В режиме быстрой установки кластер баз данных инициализируется с включёнными контрольными суммами.

После завершения установки вы можете запустить psql от имени пользователя postgres и подключиться к только что созданной базе данных.

17.1.3. Расширенная установка

Разделение дистрибутива на несколько пакетов позволяет произвести инсталляцию по-разному для различных применений: для серверов баз данных, клиентских систем или рабочих станций разработчиков. Такие инсталляции необходимо настраивать вручную, но это даёт дополнительную гибкость при использовании продукта. Вы можете установить несколько версий Postgres Pro параллельно, а также вместе с другими продуктами PostgreSQL. В частности, это может потребоваться при осуществлении обновления или при миграции с другого продукта на базе PostgreSQL.

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

  1. Подключите репозиторий пакетов, предназначенный для вашей операционной системы. Конкретные адреса репозиториев и команды для их подключения в поддерживаемых дистрибутивах Linux вы можете узнать у специалистов поддержки Postgres Pro.

  2. Выберите пакеты Postgres Pro, требующиеся для ваших целей, и установите их с помощью стандартных для вашего дистрибутива Linux команд. Доступные пакеты перечислены в Таблице 17.1.

    В результате все файлы будут установлены в каталог /opt/pgpro/ent-10.

  3. Запустите утилиту pg-wrapper, входящую в состав пакета postgrespro-ent-10-client, чтобы добавить и клиентские, и серверные программы в путь поиска PATH, а также включить страницы man по SQL в файл конфигурации страниц man:

    pg-wrapper links update

    Подробнее о разрешении возможных конфликтов рассказывается в pg-wrapper.

  4. Если вы устанавливаете пакет postgrespro-ent-10-server, выполните следующую процедуру настройки сервера:

    1. Создайте начальную базу данных, запустив вспомогательный скрипт pg-setup от имени root с ключом initdb:

      /opt/pgpro/ent-10/bin/pg-setup initdb [параметры_initdb]

      Здесь initdb_options — обычные параметры программы initdb.

      Примечание

      pg-setup инициализирует кластер баз данных со включёнными контрольными суммами. Если для вас это нежелательно, не используйте pg-setup для инициализации кластера, а запустите непосредственно initdb.

      Скрипт pg-setup выполняет административные операции с базами данных от имени пользователя postgres. Если вы не укажете никакие параметры initdb, база по умолчанию создаётся в каталоге /var/lib/pgpro/ent-10/data с параметрами локализации, определяемыми переменной окружения LANG текущего сеанса. Переменные окружения LC_* при этом игнорируются.

    2. Запустите сервер с помощью pg-setup, следующим образом:

      pg-setup service start

      Как и сервер ванильного PostgreSQL, сервер Postgres Pro работает под именем пользователя postgres.

      Примечание

      По умолчанию автоматический запуск сервера отключён, чтобы вы могли вручную управлять восстановлением базы данных после перезагрузки системы. Однако вы можете настроить и автоматический запуск сервера Postgres Pro. За подробностями обратитесь к Подразделу 17.1.3.2.

17.1.3.1. Выбор устанавливаемых пакетов

В следующей таблице перечислены все имеющиеся пакеты Postgres Pro.

Таблица 17.1. Пакеты Postgres Pro

Пакет

Описание

postgrespro-ent-10

Пакет верхнего уровня, устанавливающий и настраивающий Postgres Pro для серверных и клиентских систем. Не используйте этот пакет при обновлении или миграции.

postgrespro-ent-10-client

Стандартные клиентские приложения, такие как psql и pg_dump.

postgrespro-ent-10-libs

Общие библиотеки, требующиеся для развёртывания клиентских приложений, включая libpq; библиотеки времени выполнения для обработчика ECPG.

postgrespro-ent-10-server

Сервер Postgres Pro и серверный язык программирования PL/pgSQL.

postgrespro-ent-10-contrib

Дополнительные расширения и программы, разворачиваемые на серверах баз данных.

postgrespro-ent-10-pgprobackup

Утилита pg_probackup.

postgrespro-ent-10-devel

Заголовочные файлы и библиотеки для разработки клиентских приложений и серверных расширений.

В системах на базе Debian этот пакет называется postgrespro-ent-10-dev.

postgrespro-ent-10-plperl

Реализация языка Perl для программирования на стороне сервера.

postgrespro-ent-10-plpython

Реализация языка Python для программирования на стороне сервера.

postgrespro-ent-10-plpython3

Реализация языка Python 3 для программирования на стороне сервера.

Этот пакет представлен только для систем на базе Debian.

postgrespro-ent-10-pltcl

Реализация языка Tcl для программирования на стороне сервера.

postgrespro-ent-10-docs

Документация на английском языке.

postgrespro-ent-10-docs-ru

Документация на русском языке.

postgrespro-ent-10-test

Тестовые скрипты для сервера.

Этот пакет представлен только для систем на базе RHEL и SUSE.

Кроме этого, имеются отдельные пакеты с несколькими дополнительными модулями, собранные специально для совместимости с Postgres Pro:

Пакет

Описание

libzstd

Библиотека для быстрого сжатия данных без потерь.

mamonsu

Агент мониторинга для сбора метрик Postgres Pro и операционной системы.

pg-repack-ent-10

Расширение Postgres Pro и утилита для реорганизации таблиц. Этот пакет представлен только для систем на базе Debian.

pg_repack-ent-10

Расширение Postgres Pro и утилита для реорганизации таблиц. Этот пакет представлен только для систем на базе RHEL, CentOS, ALT Linux и SUSE.

pgpro-pgbadger

Анализатор журналов Postgres Pro, генерирующий подробные отчёты и графики.

pgbouncer

Пул соединений для Postgres Pro.

zstd

Утилиты командной строки для библиотеки libzstd.

Кроме того, Postgres Pro предоставляет отдельные пакеты с отладочной информацией для некоторых операционных систем:

  • В системах на базе Debian это пакет postgrespro-ent-10-dbg.

  • В системах на базе RHEL это пакет postgrespro-ent-10-debuginfo.

  • В Альт Линукс для всех пакетов с двоичными файлами имеются соответствующие пакеты -debuginfo.

Для серверных инсталляций требуются как минимум следующие пакеты:

Для использования дополнительных расширений Postgres Pro вы должны также установить пакет postgrespro-ent-10-contrib. В системах на базе Debian пакет postgrespro-ent-10-server зависит от пакета postgrespro-ent-10-contrib, поэтому последний должен всегда устанавливаться вместе с сервером.

Для клиентских инсталляций обычно достаточно установить пакеты postgrespro-ent-10-client и postgrespro-ent-10-libs. Если вы используете независимые приложения и вам не нужны стандартные клиентские утилиты, такие как psql, вы можете установить только пакет postgrespro-ent-10-libs.

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

Также вы можете установить и настроить сервер с тестовой базой данных. Подробнее о настройке, которая может потребоваться дополнительно, рассказывается в Подразделе 17.1.4.

17.1.3.2. Настройка автоматического запуска сервера

Если вы производите расширенную установку, автоматический запуск сервера по умолчанию отключается. После создания базы данных по умолчанию вы можете настроить автоматический запуск сервера при загрузке системы, используя имеющиеся в вашей операционной системе механизмы управления службами или сторонние средства обеспечения высокой степени доступности. Для облегчения этой задачи в пакете postgrespro-ent-10-server поставляется скрипт pg-setup, помещаемый в каталог /opt/pgpro/ent-10/bin.

Для настройки автозапуска сервера запустите скрипт pg-setup со следующими параметрами:

pg-setup service enable

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

pg-setup service disable

Вы также можете использовать системные средства управления службами, непосредственно задействуя скрипты для систем инициализации SysV init.d и systemd, предоставляемые в пакете postgrespro-ent-10-server. В зависимости от дистрибутива Linux Postgres Pro поддерживает следующие механизмы управления службами:

Дистрибутив Linux

Предоставляемые скрипты

RHEL 7, SLES 12.1

файл службы systemd

RHEL 6 и совместимые дистрибутивы, SLES 11, Альт Линукс 6

скрипт init.d (в стиле SysV)

Debian, Ubuntu, Альт Линукс 7/8

И файл службы systemd, и скрипт init.d в стиле SysV

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

systemctl enable postgrespro-ent-10.service

Для использования скрипта init.d в стиле SysV:

  • В системах RHEL 6, SLES 11 и Альт Линукс воспользуйтесь командой chkconfig для включения скрипта postgrespro-ent-10 на соответствующем уровне выполнения. Полный синтаксис этой команды можно найти на странице man chkconfig.

  • В системах Debian воспользуйтесь скриптом update-rc.d. За подробностями обратитесь к соответствующей странице man.

17.1.4. Установка на рабочих станциях разработчиков

Хотя может быть достаточно установить пакеты postgrespro-ent-10-libs и postgrespro-ent-10-devel/postgrespro-ent-10-dev, обычно на машинах разработчиков удобно иметь и установленный сервер. Для быстрой установки вы можете воспользоваться пакетом postgrespro-ent-10, который автоматически настроит предоставляемые клиентские и серверные программы, а также создаст начальную базу данных. Однако если вы планируете использовать одновременно несколько продуктов на базе PostgreSQL, следуйте инструкциям по расширенной установке, приведённым в Подразделе 17.1.3.

Чтобы скомпилировать программы с библиотеками Postgres Pro, используя утилиту pg_config, поставляемую с Postgres Pro, необходимо, чтобы её путь был указан в переменной PATH до путей каких-либо других версий pg_config. Заметьте, что в системах на базе RHEL pg_config не добавляется в PATH автоматически. Если в вашей системе нет других версий pg_config, вы можете воспользоваться утилитой pg-wrapper, поставляемой в пакете postgrespro-ent-10-client, для создания символической ссылки на pg_config в стандартном каталоге исполняемых файлов.

Для компиляции программ с использованием pkg-config добавьте путь /opt/pgpro/ent-10/lib/pkgconfig/ в переменную среды PKG_CONFIG_PATH.

17.1.4.1. Использование сторонних программ с Postgres Pro

Чтобы использовать сервер Postgres Pro с клиентской программой из стороннего продукта, вы можете установить версию библиотек PostgreSQL, с которыми компилировалась эта программа. Например, если программа поставляется в составе ванильного PostgreSQL, вам может потребоваться установить пакеты libpq или postgresql-libs, предоставляемые для вашего дистрибутива Linux. В этом случае программа, возможно, не будет использовать некоторые новые возможности сервера Postgres Pro, но скорее всего она и не поддерживает их.

Если вы предпочитаете использовать библиотеки Postgres Pro со сторонней программой или хотели бы задействовать новую возможность, которая не требует изменения самого клиентского приложения, например, проверку подлинности SCRAM, вы можете перекомпилировать вашу программу с библиотеками Postgres Pro.

Важно

Если программа скомпилирована с одной версией libpq, а используется с другой, её стабильная работа не гарантируется.

Если вы создаёте пакеты .rpm или .deb для вашей программы, рекомендуется сделать следующее:

  1. Добавьте путь /opt/pgpro/ent-10/bin в переменную PATH в сборочных скриптах (в файле .spec или debian/rules).

  2. Добавьте postgrespro-ent-10-dev в теги BuildDepends или BuildRequires описания пакета вашей программы.

Тем самым вы обеспечите вызов в процессе создания пакетов нужной версии pg_config при каждой пересборке пакета исходного кода.

postgrespro.ru

настройка на Linux CentOS 7 для 1С Предприятие ~ Knowledge Base

Postgres – бесплатная SQL база данных. Начиная с версии 8.3 платформа 1С поддерживает PostgreSQL версий 9.4 и 9.6. Для этого фирмой 1С был выпущен набор патчей для PostgreSQL 9.4.2 и 9.6.1 Эти версии СУБД имеют множество улучшений, прежде всего связанных с надежностью. В данной статье рассмотрен пример offnline установки SQL сервера  Postgres для работы с кластером 1С Предприятие. В качестве серверного дистрибутива выбран CentOS 7

Дистрибутивы

В качестве дистрибутива использованы пакеты с официального сайта 1С версии 9.6.7-1.1C. На данный момент не тестировались сборки PostgresPro, которые, как уверяют разработчики, являются улучшенными версиями официальных пакетов компании 1С.  Получить их можно по следующей ссылке. В ближайшее время я все же попытаюсь сравнить эти версии и оценить стабильность работы. Так же есть еще один канал – Etersoft

Хочу отметить, что инсталляцию необходимо проводить на ветке 9.6, так как она официально заявлена рабочей. На 10 версии Postgres тестирование не проводилось.

Установка

Сейчас интернет есть даже у холодильника, но я столкнулся с ситуацией, когда на площадке Интернет был только на рабочем месте. Не буду вдаваться в подробности почему и как – по факту. Дело не благородное, но вариантов нет! Если у вас есть выход в Интернет, то данную часть можно пропустить.  И так, для установки понадобятся следующие пакеты, которых нет в дистрибутиве Centos 7 minimal – bzip2, libicu, libxslt и tcl. Как это сделать, описано в статье Использование YUM для закачки пакетов

Если все дистрибутивы (качестве дистрибутива использованы пакеты с официального сайта 1С версии 9.6.7-1.1C) скачаны и заброшены на сервер, можно приступить к установке

Распаковка архивов

 

tar -xvf postgresql_9.6.7_1.1C_x86_64_rpm.tar.bz2

tar -xvf postgresql_9.6.7_1.1C_x86_64_addon_rpm.tar.bz2

 

Установка PostgresSQL

 

cd postgresql-9.6.7-1.1C_x86_64_rpm

yum localinstall -y *.rpm

 

Установка дополнений

 

cd postgresql-9.6.7-1.1C_x86_64_addon_rpm/

yum localinstall -y *.rpm

 

Инициализация базы данных и запуск Postgres

Переключаемся на пользователя postgres
Запуск инициализации системной базы с указанием кодировки и рабочего каталога

 

/usr/pgsql-9.6/bin/initdb --locale=ru_RU.UTF-8 -D /var/lib/pgsql/9.6/data/

 

...

 

Success. You can now start the database server using:

 

/usr/pgsql-9.6/bin/pg_ctl -D /var/lib/pgsql/9.6/data/ -l logfile start

 

Запуск сервера Postgres

 

/usr/pgsql-9.6/bin/pg_ctl -D /var/lib/pgsql/9.6/data/ -l logfile start

 

server starting

 

Подключение в базе

 

/usr/pgsql-9.6/bin/psql

psql (9.6.7)

Type "help" for help.

 

Отлично!
Устанавливаем пароль пользователя postgres

 

postgres=# ALTER USER postgres WITH PASSWORD 'PGPASSWORD';

ALTER ROLE

postgres=# \q

 

Проверка локализации и работоспособности

 

psql -l

 

List of databases

Name | Owner | Encoding | Collate | Ctype | Access privileges

-----------+----------+----------+-------------+-------------+-----------------------

postgres | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 |

template0 | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres +

| | | | | postgres=CTc/postgres

template1 | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres +

| | | | | postgres=CTc/postgres

(3 rows)

 

Перезагрузка сервера

Настройка подключения

После перезагрузки запустим вручную и добавим в автозагрузку

 

service postgresql-9.6 start

chkconfig postgresql-9.6 on

service postgresql-9.6 status

 

Отроем порт Postgres на фаерволе для подключения или отключим совсем

 

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

firewall-cmd --reload

 

Отключение фаервола

 

systemctl stop firewalld

systemctl disable firewalld

 

Отключим SELinux

Отредактируем файл /etc/sysconfig/selinux, присвоив параметру SELINUX флаг disabled:

 

vi /etc/sysconfig/selinux

SELINUX=disabled

:wq

 

Настройка файла hosts

Для успешной работы кластера 1С Предприятия на Windows сервере, необходимо отредактировать файл hosts, как на Linux? так и Windows и привести к следующему виду. Тоже не обязательная процедура, но иногда возникают проблемы

 

vi /etc/hosts

192.168.1.252 1c 1c.domain

 

Для Windows необходимо отредактировать файл c:\Windows\System32\Drivers\etc\hosts

Перезагрузка

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

Настройка базы данных в кластере 1С Предприятие

Тут все стандартно – задаем имя сервера, имя базы, логин и пароль сервера Postgres

Если подключение прошло успешно, ПОЗДРАВЛЯЮ!!!, вы все настроили верно ))) Можно загрузить в базу нагрузочный тест Гилева и проверить быстродействие системы без оптимизации

Оптимизация настроек Postgresql для сервера 1С Предприятие

Некоторые параметры разъяснены в этой статье. Сохраним резервную копию файла настроек

 

cp /var/lib/pgsql/9.6/data/postgresql.conf  /var/lib/pgsql/9.6/data/postgresql.conf.bak

 

Отредактируем файл /var/lib/pgsql/9.6/data/postgresql.conf  и приведем его к виду

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

 

#----------------------------------------------------------------------

listen_addresses = '*'        # what IP address(es) to listen on;

dynamic_shared_memory_type = posix    # the default is the first option

log_destination = 'stderr'        # Valid values are combinations of

log_rotation_age = 1d            # Automatic rotation of logfiles will

datestyle = 'iso, dmy'

timezone = 'W-SU'

lc_messages = 'ru_RU.UTF-8'            # locale for system error message

lc_monetary = 'ru_RU.UTF-8'            # locale for monetary formatting

lc_numeric = 'ru_RU.UTF-8'            # locale for number formatting

lc_time = 'ru_RU.UTF-8'                # locale for time formatting

default_text_search_config = 'pg_catalog.russian'

#----------------------------------------------------------------------

effective_cache_size = '12288MB'

work_mem = '32MB'

shared_buffers = '12288MB'

maintenance_work_mem = '512MB'

temp_buffers = '32MB'

#temp_tablespaces = 'user_temp'

max_files_per_process = '24576'

autovacuum_max_workers = '4'

autovacuum_analyze_scale_factor = '0.01'

autovacuum_vacuum_scale_factor = '0.02'

random_page_cost = '1.5'

log_statement = 'none'

#----------------------------------------------------------------------

log_filename = 'postgresql-%Y-%m-%d.log'

log_rotation_size = '0'

log_timezone = 'W-SU'

log_truncate_on_rotation = 'on'

logging_collector = 'on'

shared_preload_libraries = 'online_analyze, plantuner, auto_explain'

online_analyze.enable = off

online_analyze.verbose = off

online_analyze.table_type = 'temporary'

online_analyze.scale_factor = 0.3

online_analyze.min_interval = 10000

online_analyze.threshold = 500

online_analyze.local_tracking = on

cpu_operator_cost = 0.0005

plantuner.fix_empty_table = on

 

autovacuum_naptime = '20'

#autovacuum_analyze_threshold = 20

 

bgwriter_delay = '10' # ms

bgwriter_lru_maxpages = '800'

bgwriter_lru_multiplier = '8'

 

# storage specific

effective_io_concurrency = '2'

random_page_cost = '2'

 

checkpoint_completion_target = 0.9

#checkpoint_segments = '128'

max_connections = '1000'

 

synchronous_commit = 'off'

commit_delay = '1000'

 

# 1C specific

escape_string_warning = 'off'

standard_conforming_strings = 'off'

max_locks_per_transaction = '256'

#work_mem = 65536

 

# pgbadger

 

log_directory = 'pg_log'

#log_directory = '/var/log/pgsql'

#log_filename = 'postgresql.log'

log_min_duration_statement = 0s

log_autovacuum_min_duration = 0

log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h '

log_checkpoints = on

log_connections = on

log_disconnections = on

log_lock_waits = on

log_temp_files = 0

 

# backup

max_wal_senders = 4

wal_level = hot_standby

wal_keep_segments = 1024

 

 

 

Конфигурация рассчитана на 32Gb оперативной памяти.

Описание параметров с сайта infostat

При настройке сервера для тестирования я полагался на следующие расчеты:Всего 4Гб ОЗУ. Потребители – ОС Windows, сервер 1С, PostgreSQL и дисковый кэш системы. Я исходил из того что для СУБД можно выделить до 2.5Гб ОЗУ

Значения могут указываться с суффиксами kB, MB, GB (значения в килобайта, мегабайтах или гигабайтах). После изменения значений требуется перезапустить службу PostgreSQL.

shared_buffers – Общий буфер сервера

Размер кэша чтения и записи PostgreSQL, общего для всех подключений. Если данные отсутствуют в кэше, производится чтение с диска (возможно, будут кэшированы ОС)

Если объём буфера недостаточен для хранения часто используемых рабочих данных, то они будут постоянно писаться и читаться из кэша ОС или с диска, что крайне отрицательно скажется на производительности.

Но это не вся память, требуемая для работы, не следует указывать слишком большое значение, иначе не останется памяти как для собственно выполнения запросов клиентов (а чем их больше тем выше потребление памяти), так и для ОС и прочих приложений, например, процесса сервера 1С. Так же сервер полагается и на кэш ОС и старается не держать в своём буфере то что скорее всего закэшировано системой.

Начальные рекомендации:Средний объем данных, доступно 256-512Мб – значения 16-32МбБольшой объем данных, доступно 1-4Гб – значения 64-256Мб или выше.

В тесте использовалось

shared_buffers = 512MB

work_mem – память для сортировки, агрегации данных и т.д.

Выделяется на каждый запрос, возможно по нескольку раз для сложных запросов. Если памяти недостаточно – PostgreSQL будет использовать временные файлы. Если значение слишком большое – может возникнуть перерасход оперативной памяти и ОС начнет использовать файл подкачки с соответствующим падением быстродействия.

Есть рекомендация при расчетах взять объем доступной памяти за вычетом shared_buffers, и поделить на количество одновременно исполняемых запросов. В случае сложных запросов делитель стоит увеличить, т.е. уменьшить результат. Для рассматриваемого случая из расчета 5 активных пользователей (2.5Гб-0.5Гб (shared_buffers))/5=400Мб. В случае если СУБД сочтет запросы достаточно сложными, или появятся дополнительные пользователи, потребуется значение уменьшить.

Для простых запросов достаточно небольших значений – до пары мегабайт, но для сложных запросов (а это типовой сценарий для 1С) потребуется больше. Рекомендация – для памяти 1-4Гб можно использовать значения 32-128Мб. В тесте использовал

work_mem = 128MB

maintenance_work_mem – память для команд сбора мусора, статистики, создания индексов.

Рекомендуется устанавливать значение 50-75% от размера самой большой таблицы или индекса, но чтобы памяти хватило для работы системы и приложений. Рекомендуется устанавливать значения больше чем work_mem. В тесте использовалmaintenance_work_mem = 192MB

temp_buffers – буфер под временные объекты, в основном для временных таблиц.

Можно установить порядка 16 МБ. В тесте использовалtemp_buffers = 32MB

effective_cache_size – примерный объем дискового кэша файловой системы.

Оптимизатор использует это значение при построении плана запроса, для оценки вероятности нахождения данных в кэше (с быстрым случайным доступом) или на медленном диске. В Windows текущий объем памяти, выделенной под кэш, можно посмотреть в д

www.kost.su

Не удается подключиться к postgresql на порту 5432 Ubuntu Linux

Я установил стек Bitnami Django, который включал PostgreSQL 8.4.

Когда я запускаю psql -U postgres я получаю следующую ошибку:

PG определенно работает, и файл pg_hba.conf выглядит так:

Эта проблема возникает при установке пакета postgres без номера версии. Хотя postgres будут установлены, и это будет правильная версия, скрипт для настройки кластера будет работать неправильно; это проблема упаковки.

Если вам postgres есть скрипт, который вы можете запустить, чтобы создать этот кластер и запустить postgres но есть более простой способ.

Сначала очистите старую установку postgres. В настоящее время проблема заключается в 9.1, поэтому я предполагаю, что это то, что вы установили

sudo apt-get remove --purge postgresql-9.1

Теперь просто переустановите

sudo apt-get install postgresql-9.1

Обратите внимание на имя пакета с номером версии. НТН.

Сообщение об ошибке относится к сокету Unix-домена, поэтому вам нужно настроить ваш вызов netstat чтобы не исключать их. Поэтому попробуйте без опции -t :

netstat -nlp | grep 5432

Я бы предположил, что сервер фактически прослушивает сокет /tmp/.s.PGSQL.5432 а не /var/run/postgresql/.s.PGSQL.5432 которому пытается подключиться ваш клиент. Это типичная проблема при использовании компилируемых или сторонних пакетов PostgreSQL на Debian или Ubuntu, потому что исходный по умолчанию для каталога сокетов в Unix-домене /tmp но пакет Debian меняет его на /var/run/postgresql .

Возможные обходные пути:

  • Используйте клиентов, поставляемых вашим сторонним пакетом (вызов /opt/djangostack-1.3-0/postgresql/bin/psql ). Возможно, вообще удалите пакеты, поставляемые Ubuntu (может быть сложно из-за других обратных зависимостей).
  • Исправьте каталог сокетов стороннего пакета, совместимый с Debian / Ubuntu.
  • Используйте -H localhost для подключения через TCP / IP.
  • Используйте -h /tmp или эквивалентную настройку PGHOST чтобы указать на правый каталог.
  • Не используйте сторонние пакеты.

Вы можете использовать psql -U postgres -h localhost для принудительного подключения к TCP вместо UNIX-сокетов; ваш вывод netstat показывает, что сервер PostgreSQL прослушивает порт 5432 localhost.

Вы можете узнать, какой локальный сокет UNIX используется сервером PostgrSQL, используя другую invocavtion netstat :

netstat -lp --protocol=unix | grep postgres

Во всяком случае, интерфейсы, на которых прослушивается сервер PostgreSQL, настраиваются в postgresql.conf .

Просто создайте программную ссылку:

ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432

Меня устраивает:

Изменить: postgresql.conf

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

Включить или добавить:

listen_addresses = '*'

Перезапустить механизм базы данных:

sudo service postgresql restart

Кроме того, вы можете проверить файл: pg_hba.conf

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

И добавьте свой адрес сети или хоста:

host all all 192.168.1.0/24 md5

Мне пришлось скомпилировать PostgreSQL 8.1 на Debian Squeeze, потому что я использую Project Open, основанный на OpenACS, и не буду работать в более поздних версиях PostgreSQL.

Конфигурация компиляции по умолчанию ставит unix_socket в /tmp , но Project Open, который полагается на PostgreSQL, не будет работать, потому что он ищет unix_socket в /var/run/postgresql .

В postgresql.conf есть настройка для установки местоположения сокета. Моя проблема заключалась в том, что либо я мог установить для /tmp psql , но не для проекта open, или я мог бы установить его для /var/run/postgresql а psql не работал бы, кроме как открывался проект.

Одно из решений этой проблемы – установить сокет для /var/run/postgresql а затем запустить psql , исходя из предложения Питера, как:

psql -h /var/run/postgresql

Это выполняется локально с использованием локальных разрешений. Единственный недостаток заключается в том, что это больше набирает, чем просто «psql».

Другое предложение, сделанное кем-то, заключалось в создании символической связи между двумя местами. Это также сработало, но ссылка исчезла при перезагрузке. Возможно, проще просто использовать аргумент -h, однако я создал символическую ссылку из сценария PostgreSQL в /etc/init.d . Я поместил символическую ссылку создать команду в разделе «Начало». Конечно, когда я выдаю команду «Стоп» и «Запуск или перезапуск», она попытается воссоздать существующую символическую ссылку, но, помимо предупреждения, в этом нет вреда.

В моем случае вместо:

ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432

у меня есть

ln -s /var/run/postgresql/.s.PGSQL.5432 /tmp/.s.PGSQL.5432

и явно установили unix_socket в /var/run/postgresql/.s.PGSQL.5432 в postgresql.conf .

я заставляю его работать, делая это:

dpkg-reconfigure locales

и выберите предпочитаемые локали

pg_createcluster 9.5 main --start

(9.5 – моя версия postgresql)

/etc/init.d/postgresql start

и тогда это сработает!

sudo su - postgres psql

Решение:

Сделай это

export LC_ALL="en_US.UTF-8"

и это. ( 9.3 – это моя текущая версия PostgreSQL. Напишите свою версию!)

sudo pg_createcluster 9.3 main --start

В моем случае это было вызвано опечаткой, которое я сделал при редактировании /etc/postgresql/9.5/main/pg_hba.conf

Я изменился:

# Database administrative login by Unix domain socket local all postgres peer

чтобы:

# Database administrative login by Unix domain socket local all postgres MD5

Но MD5 должен был быть нижним регистром md5 :

# Database administrative login by Unix domain socket local all postgres md5

Имея ту же проблему, я попробовал что-то другое:

запуск вручную postgresql daemon Я получил:

FATAL: не удалось создать сегмент разделяемой памяти … Чтобы уменьшить размер запроса (в настоящее время 57237504 байт), уменьшите использование разделяемой памяти PostgreSQL, возможно, за счет сокращения shared_buffers или max_connections.

так что я сделал, чтобы установить нижний предел для shared_buffers и max_connections в postgresql.conf и перезапустить службу.

Это исправлено!

PS: следует полный журнал ошибок

$ sudo service postgresql start * Starting PostgreSQL 9.1 database server * The PostgreSQL server failed to start. Please check the log output: 2013-06-26 15:05:11 CEST FATAL: could not create shared memory segment: Invalid argument 2013-06-26 15:05:11 CEST DETAIL: Failed system call was shmget(key=5432001, size=57237504, 03600). 2013-06-26 15:05:11 CEST HINT: This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter. You can either reduce the request size or reconfigure the kernel with larger SHMMAX. To reduce the request size (currently 57237504 bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections. If the request size is already small, it's possible that it is less than your kernel's SHMMIN parameter, in which case raising the request size or reconfiguring SHMMIN is called for. The PostgreSQL documentation contains more information about shared memory configuration.

Возможно, это могло произойти, потому что вы изменили разрешение папки /var/lib/postgresql/9.3/main . попробуйте изменить его на 700, используя команду ниже:

sudo chmod 700 main

У меня была такая же проблема, о которой описал Питер Айзентраут. Использование netstat -nlp | grep 5432 netstat -nlp | grep 5432 , я мог видеть, что сервер прослушивал сокет /tmp/.s.PGSQL.5432 .

Чтобы исправить это, просто отредактируйте файл postgresql.conf и измените следующие строки:

listen_addresses = '*' unix_socket_directories = '/var/run/postgresql'

Теперь запустите service postgresql-9.4 restart (замените 9-4 вашей версией), и теперь должны работать удаленные подключения.

Теперь, чтобы разрешить локальные подключения, просто создайте символическую ссылку в каталог /var/run/postgresql .

ln -s /var/run/postgresql/.s.PGSQL.5432 /tmp/.s.PGSQL.5432

Не забудьте убедиться, что ваш pg_hba.conf настроен правильно.

Я пробовал все вышеперечисленное, пока я не последовал за письмом.

Да, у меня была такая же проблема. (используя Ubuntu 15.10 (wily)) Sudo find / -name 'pg_hba.conf' -print или sudo find / -name 'postgresql.conf' -print оказался пустым. До этого казалось, что были установлены несколько экземпляров postgresql.

У вас может быть симулятор, если вы видите, как установленный, или список проблем с зависимостью

… / postgresql … / postgresql-9.x и так далее.

В этом случае вы должны sudo apt-get autoremove (каждый пакет 1 на 1)

Затем следуя этому письму, и все будет хорошо. Особенно, когда речь идет о ключевом импорте и добавлении в исходный список FIRST

sudo apt-get update && sudo apt-get -y install python-software-properties && wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ wily-pgdg main" >> /etc/apt/sources.list.d/postgresql.list' sudo apt-get update && sudo apt-get install postgresql-9.3 pgadmin3

И тогда вы должны быть в порядке и иметь возможность подключаться и создавать пользователей.

ВЫВОД

Creating new cluster 9.3/main ... config /etc/postgresql/9.3/main data /var/lib/postgresql/9.3/main locale en_US.UTF-8 socket /var/run/postgresql port 5432

источник моих решений (кредиты) http://technobytz.com/install-postgresql-9-3-ubuntu.html

Мне не удалось решить эту проблему с моим сервером postgres-9.5. После 3-х дней нулевого прогресса, пробовав каждую перестановку исправления на этом и других сайтах, я решил переустановить сервер и потерять 5-дневную работу. Но я повторил проблему в новом экземпляре. Это может дать некоторую перспективу относительно того, как исправить это, прежде чем принять тот катастрофический подход, который я сделал.

Сначала отключите все параметры ведения журнала в postgresql.conf. Это раздел:

# ERROR REPORTING AND LOGGING

Прокомментируйте все в этом разделе. Затем перезапустите службу.

При перезапуске используйте /etc/init.d/postgresql start или restart Мне было удобно, чтобы во время перезапуска был включен режим суперпользователя. У меня было x-окно, открытое только для этой операции. Вы можете установить режим суперпользователя с помощью sudo -i .

Убедитесь, что сервер может быть достигнут с помощью этой простой команды: psql -l -U postgres

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

После того, как вы получите доступ, систематически измените каждую соответствующую строку в разделе # ERROR REPORTING AND LOGGING файла postgresql.conf . Перезапустите и проверьте. Я обнаружил, что папка по умолчанию для журналов вызывала сбой. Я специально прокомментировал log_directory . Папка по умолчанию, в которой система записывает журналы, равна /var/log/postgresql .

Найдите свой файл:

sudo find /tmp/ -name .s.PGSQL.5432

Resut:

/tmp/.s.PGSQL.5432

Вход как пользователь postgres:

su postgres psql -h /tmp/ yourdatabase

В моем случае все, что я должен был сделать, это:

sudo service postgresql restart

а потом

sudo -u postgres psql

Это сработало отлично. Надеюсь, поможет. Приветствия :).

ubuntu.fliplinux.com

Как установить pgAdmin III для postgreSQL 9.2? Ubuntu Linux

Начиная с 2014 года, этот сайт описывает способ сделать это для Ubuntu и Debian: https://wiki.postgresql.org/wiki/Apt

Скопируйте пасту (2014-06-06), если веб-сайт выходит в автономный режим, что бы ни случилось:

Пакеты PostgreSQL для Debian и Ubuntu

Глобальная группа разработки PostgreSQL (PGDG) поддерживает репозиторий APT пакетов PostgreSQL для Debian и Ubuntu, расположенных по адресу http://apt.postgresql.org/pub/repos/apt/ . Мы нацелены на создание серверных пакетов PostgreSQL, а также пакетов расширений и модулей на нескольких версиях Debian / Ubuntu для всех поддерживаемых версий PostgreSQL. В настоящее время мы поддерживаем Debian 6.0 (squeeze), 7.0 (wheezy) и нестабильный (sid) 64/32 бит (amd64 / i386) Ubuntu 10.04 (lucid), 12.04 (точный), 13.10 (saucy), 14.04 (trusty) 64 / 32 бит (amd64 / i386) PostgreSQL 8.4, 9.0, 9.1, 9.2, 9.3, 9.4 beta Расширения сервера, такие как Slony-I, различные языки PL и типы данных Приложения, такие как pgadmin3, pgbouncer и pgpool-II Пакеты для более старых версий PostgreSQL и более старые дистрибутивы Debian / Ubuntu будут оставаться в репозитории; обновления для них будут предоставляться на разовой основе.

Быстрый старт

Создайте /etc/apt/sources.list.d/pgdg.list. Распределения называются codename-pgdg. В этом примере замените wheezy на фактическое распределение, которое вы используете:

deb http://apt.postgresql.org/pub/repos/apt/ wheezy-pgdg main

(Вы можете определить кодовое имя своего дистрибутива, запустив lsb_release -c.) Импортируйте ключ репозитория из https://www.postgresql.org/media/keys/ACCC4CF8.asc , обновите списки пакетов и начните установку пакетов:

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update sudo apt-get upgrade sudo apt-get install postgresql-9.3 pgadmin3

Кроме того, этот сценарий оболочки выполнит указанные выше действия. Только 9.4 бета: Смотрите FAQ в бета-версиях. Посмотрите FAQ. Примечание. В этом репозитории предусмотрены мета-пакеты postgresql, postgresql-contrib и postgresql-client, которые зависят от последних пакетов postgresql-xy, …, аналогичных тем, которые присутствуют в Debian и Ubuntu. После выпуска новой PostgreSQL-версии эти мета-пакеты будут обновляться, чтобы зависеть от новой версии. Если вы хотите остаться с определенной версией PostgreSQL, вы должны установить определенные пакеты, такие как «postgresql-9.3» вместо «postgresql».

Он находится в репозиториях.

sudo apt-get install pgadmin3

или выполнить поиск в программном центре.

Если это неправильная версия, вы можете использовать PPA :

  • Что такое PPAs и как их использовать?

Если это не сработает, вы можете использовать источник и скомпилировать его самостоятельно из источника .

Версия 16 pgadmin3 ( http://www.pgadmin.org/visualtour16.php ) требуется для Postgres 9.2, и она не находится в репо или PPA для Ubunutu 12.10.

Похоже, вы должны его построить или обновить.

Я построил его для 12.10: https://copy.com/anB4E19CxdLW – возможно, этот бинарный файл будет работать для вас, если вы на 12.10.

Если нет, и вам нужно его самостоятельно создать, убедитесь, что вы устанавливаете

sudo apt-get install postgresql-server-dev-9.2

ubuntu.fliplinux.com

Новый GUI для Postgresql / Хабрахабр

Хочу поделиться новым продуктом со всеми пользователями замечательной базы данных Postgresql. Встречайте — SQL Tabs — графическая SQL консоль для Postgresql. Это новый GUI клиент, в котором можно просматривать объекты базы данных, писать SQL запросы и строить графики.

На сегодняшний день можно скачать версии для OSX и Ubuntu. Пользователи других linux-дистрибутивов могут запустить приложение из исходников. К сожалению, версии для Windows пока нет. Хочется надеяться, что приложение понравится сообществу, и найдутся разработчики, способные помочь в выпуске пакетов под разные платформы: rpm, debian, windows.

Немного информации для разработчиков: SQL Tabs написано на стэке javascript, electron, react
 и использует native libpq драйвер для работы с базой. Выпускается под лицензий GPL3. 
 Теперь об основных особенностях SQL Tabs, отличиях от других похожих продуктов и основной мотивации, которая стоит за разработкой.

 

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

Наверное самым большим отличием от подобных приложений будет отсутствие привычного дерева объектов БД в левой боковой панели. Вместо него там расположен навигатор по файловой системе в духе Project Window. Это делает SQL Tabs больше похожим на текстовый редактор а ля Sublime. Как никак, разработка баз данных ничем принципиально не отличается от любой другой разработки: SQL скрипты нужно хранить в файлах, а файлы в git или любой другой scm. При этом, редактируя файл, можно тут же выполнять запросы, переключаясь между разными базами данных на лету.

Тем не менее, навигатор по объектам таки существует, вызвать его можно из меню, выбрав пункт Database Info. Список поддерживаемых объектов пока далеко не полный, это как раз та область, где еще предстоит поработать. Такое решение позволяет получать быстрый доступ к описанию объектов прямо в время написания кода. Например, набрав имя таблицы в редакторе, можно нажать CTRL+I (CMD+I на маке) и увидеть структуру таблицы и наличие индексов, не переключаясь на другое окно.


Из плюшек еще имеются история выполненных запросов с поиском, светлая и темная темы оформления, автодополнение ключевых слов и имен объектов. Для гиков есть Vim-мод.

Теперь моя любимая фишка — визуализация результата запроса. Смысл в том, чтобы по данным из таблицы построить график, не покидая контекста SQL. Очень полезно при поверхностном анализе данных. Работает это следующим образом.

SQL Tabs может использовать в скриптах дополнительную семантику: блоки SQL команд, которые разделяются при помощи строки комментария, начинающейся с трех дефисов:

--- 1st SQL block SELECT 1; SELECT 2; --- 2nd SQL block SELECT 3; SELECT 4; Такая строка может содержать в себе дополнительно аннотацию, т.е. пояснять каким образом нужно интерпретировать вывод SQL команд текущего блока.
 Например, вот такой запрос, возвращающий количество сотрудников по городам: 
SELECT city, COUNT(*) FROM employees GROUP BY city city | count ---------|--------- London | 245 Paris | 153 New York | 323 Для визуализации таких данных сам собой напрашивается pie-chart (пусть это и не самый удачный вариант графика). Для того, чтобы построить график в SQL Tabs, добавляем перед запросом аннотацию и нажимаем Execute Block.--- chart pie SELECT city, COUNT(*) FROM employees GROUP BY city

Для меня самыми полезными оказались обычные timeseries графики для анализа роста таблиц и распределения данных во времени. Вот синтетический пример такого графика:




--- chart area-spline x=1 SELECT d::date, random() FROM generate_series(now()-interval '1 month', now(), interval '1 day') d


А вот картинка из реального примера. Размер дневных партиций и их индексов:








И в завершении немного о планах. SQL Tabs — очень молодой продукт, всего лишь 4 месяца от роду. За это время ритм разработки удавалось держать на уровне примерно двух релизов за месяц. Каждый релиз, как правило, содержал одну или несколько относительно завершенных фич. На сегодняшний момент основная концепция, которая должна быть в первой версии, реализована. Следующие релизы скорее всего будут направлены на доработку и отладку заявленной функциональности.

Если есть какие-то замечания по продукту — обязательно оформите issue в официальном репозитории github.com/sasha-alias/sqltabs. Я уверен, ваши отзывы очень помогут сделать SQL Tabs лучше и в семействе инструментов для Potgresql прибудет.

habr.com