Heroku Postgres: "psql: FATAL: нет записи pg_hba.conf для хоста" - PullRequest
0 голосов
/ 04 февраля 2020

Существует несколько команд Heroku CLI Postgres, которые возвращают одну и ту же ошибку. Например:

$ heroku pg:bloat
psql: FATAL:  no pg_hba.conf entry for host "...", user "...", database "...", SSL off

По крайней мере одна из этих команд работала в прошлом, но не работает.

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

Я не вижу способа переключения SSL на панели инструментов Heroku Postgres. Что может быть причиной этого и как я могу это исправить?

Ответы [ 3 ]

1 голос
/ 04 февраля 2020

Оказывается, что команды типа heroku pg:bloat используют локальную установку Postgres и psql под капотом. Я перекомпилировал мою Postgres установку с поддержкой ssl (--with-openssl) и все заработало.

0 голосов
/ 04 февраля 2020

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

pg_hba.conf file находится на сервере и содержит сведения о разрешенных соединениях. В вашем случае в файле нет подходящей записи с указанными данными (при не-ssl-соединении).

Это можно исправить, заставив соединение следовать протоколу SSL. Как уже упоминал Радж, вам нужно изменить строку подключения так, чтобы она включала sslmode = require. Вот документация на герою, касающаяся того же самого. Проверьте блок «внешние соединения» в do c.

0 голосов
/ 04 февраля 2020

вам нужно установить sslmode = require в строке соединений. Например, скажем, драйвер JDB C:

String dbUrl = "jdb c: postgresql: //" + dbUri.getHost () + ':' + dbUri.getPort () + dbUri.getPath () + "? sslmode = require" ;

Вы всегда можете переключить ssl_mode в config var, но я бы предложил сделать это в строке подключения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...