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>
Можно ли решить проблему, указав какие-либо свойства?
Ответы
Ответ 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>