Подтвердить что ты не робот

Org.postgresql.util.PSQLException: FATAL: нет записи pg_hba.conf для хоста

Я пытаюсь подключиться к базе данных PostgreSQL, находящейся в удаленном местоположении, используя шаблон Spring JDBC. Я получаю

org.postgresql.util.PSQLException: FATAL: нет записи pg_hba.conf для хоста "139.126.243.71", пользователя "guest", базы данных "masterdb", ошибки SSL off

У меня нет доступа к файлу pg_hba.conf удаленного места.

Это конфигурация, которую я дал в Spring servlet.xml

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="org.postgresql.Driver"/>
    <property name="url" value="jdbc:postgresql://100.64.35.52":5432/masterdb"/>
    <property name="username" value="root"/>
    <property name="password" value="root"/>
</bean>

Можно ли решить проблему, указав какие-либо свойства?

4b9b3361

Ответ 1

Кажется, сервер БД не позволяет отключить SSL, вам придется включить его. Изменить URL-адрес от jdbc:postgresql://100.64.35.52":5432/masterdb до jdbc:postgresql://100.64.35.52":5432/masterdb?sslmode=require

Проверьте состояние режима ssl в http://www.postgresql.org/docs/9.1/static/libpq-ssl.html

Ответ 2

Вы должны применить изменения удара для подключения:

в "C:\Program Files (maby x86)\PostgreSQL (ваша версия)\data"

в файле postgresql.conf:

проверьте "listen_addresses" be = '*' (по умолчанию его localhost в некоторых версиях postgres), если это не так, вы должны изменить его на '*'. это вызывает прослушивание всех адресов.

в файле "pg_hba.conf":

добавить новую строку:

host all all 0.0.0.0/0 md5

(лучше использовать вышеприведенную строку) или

host guest masterdb 139.126.243.71 md5

И filnally очень важно, чтобы режим ssl был включен. для этого добавьте команду удара в конце вашего URL:

?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory

В терминах Bean как

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="org.postgresql.Driver"/>
    <property name="url" value="jdbc:postgresql://100.64.35.52":5432/masterdb?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory"/>
    <property name="username" value="root"/>
    <property name="password" value="root"/>
</bean>