Получение сообщения об ошибке: Ошибка аутентификации равноправного узла для пользователя "postgres" при попытке заставить pgsql работать с rails

Некоторые опции:

  1. Оберните свои свойства в файле .jar, а затем попросите свои процессы прочитать этот файл свойств из getClass().getResourceAsStream()
  2. . Напишите пакетный файл для выполните ваши Java-процессы и либо явным образом перечислите параметры -D, либо создайте командную строку динамически.

Я решаю эту проблему обычно с помощью Spring (также для других причин) и PropertyPlaceholderConfigurer . Это позволяет мне указать одно или несколько мест для файлов свойств и изменяет конфигурацию Spring на месте.

629
задан Joel Ellis 10 December 2018 в 03:43
поделиться

1 ответ

pg_config для получения информации о компиляции, для помощи расширениям и клиентской компиляции программ и ссылке против PostgreSQL. Это ничего не знает об активном экземпляре (экземплярах) PostgreSQL на машине, только двоичные файлы.

pg_hba.conf может появиться во многих других местах в зависимости от того, как Pg был установлен. Стандартное местоположение является pg_hba.conf в data_directory базы данных (который мог быть в / домой,/var/lib/pgsql,/var/lib/postgresql / [версия]/,/opt/postgres/, и т.д. и т.д. и т.д.), но пользователи и поставщики программного блока могут поместить его везде, где им нравится. К сожалению.

единственные допустимые пути находят, что pg_hba.conf должен спросить рабочий экземпляр PostgreSQL, где это - pg_hba.conf, или спросите системного администратора, где это. Вы не можете даже полагаться на выяснение, где datadir и анализирующий postgresql.conf, потому что init сценарий мог бы, передал параметрический усилитель как-c hba_file =/some/other/path при запуске Стр.

, Что Вы хотите сделать, спрашивают PostgreSQL:

SHOW hba_file;

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

psql -t -P format=unaligned -c 'show hba_file';

и набор переменные среды PGUSER, PGDATABASE, и т.д. чтобы гарантировать, что соединение является правильным.

Да, это - своего рода проблема курицы-и-яйца, в том, что, если пользователь не может соединиться (говорят, после завинчивания, редактируя pg_hba.conf) Вы не можете найти pg_hba.conf для фиксации его.

Другая опция состоит в том, чтобы посмотреть на вывод команды PS и видеть, видим ли аргумент каталога данных администратора почты-D там, например,

ps aux  | grep 'postgres *-D'

, так как pg_hba.conf будет в каталоге данных (если Вы не будете на Debian/Ubuntu или некоторой производной и использовании их пакетов).

при предназначении конкретно для систем Ubuntu с PostgreSQL, установленным от пакетов Debian/Ubuntu, это становится немного легче. Вы не должны иметь дело с hand-compiled-from-source Pg, что чьи-то initdb'd, которые datadir для в их домашнем dir или EnterpriseDB Pg устанавливает в/, выбирают и т.д. Можно спросить pg_wrapper, мультиверсия Debian/Ubuntu менеджер Pg, где PostgreSQL использует команду pg_lsclusters от pg_wrapper.

, Если Вы не можете соединиться (Pg не работает, или необходимо отредактировать pg_hba.conf для соединения), необходимо будет искать систему pg_hba.conf файлы. На Mac и Linux что-то как sudo находит / - тип f - называет pg_hba.conf, сделает. Затем проверьте файл PG_VERSION в тот же каталог, чтобы удостовериться, что это - правильная версия PostgreSQL, если у Вас есть больше чем один. (Если pg_hba.conf находится в / и т.д./, проигнорируйте это, это - название родительского каталога вместо этого). Если у Вас есть больше чем один каталог данных для той же версии PostgreSQL, необходимо будет посмотреть на размер базы данных, проверить командную строку рабочей пост-ГРЭС от PS, чтобы видеть, является ли это каталог данных-D соответствия аргумента, где Вы редактируете, и т.д. https://askubuntu.com/questions/256534/how-do-i-find-the-path-to-pg-hba-conf-from-the-shell/256711

0
ответ дан 22 November 2019 в 21:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: