off - org.postgresql.util.PSQLException: FATAL: ninguna entrada pg_hba.conf para el host
org postgresql util psqlexception fatal no pg_hba conf entry for host (4)
Estoy tratando de conectarme a la base de datos PostgreSQL que está en una ubicación remota utilizando la plantilla Spring JDBC. estoy obteniendo
org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entrada para el host "139.126.243.71", usuario "invitado", base de datos "masterdb", error de apagado de SSL
No tengo acceso al archivo pg_hba.conf de la ubicación remota.
Esta es la configuración que di en mi servidor 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>
¿Podemos resolver el problema dando alguna propiedad?
Debes aplicar cambios de golpe para conectar:
en "C: / Archivos de programa (maby x86) / PostgreSQL (su versión) / datos"
en el archivo "postgresql.conf":
marque "listen_addresses" be = ''*'' (por defecto es localhost en algunas versiones de postgres) si no lo está, debe cambiarlo a ''*''. Es motivo para escuchar todas las direcciones.
en el archivo "pg_hba.conf":
añadir una nueva fila:
host all all 0.0.0.0/0 md5
(el uso de la fila de arriba es mejor) o
host guest masterdb 139.126.243.71 md5
Y realmente es muy importante que el modo ssl esté activado. para este comando de agregar golpe al final de tu url:
?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
En términos de frijol como
<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>
Parece que el servidor DB no permite la conexión SSL sin conexión, tendrá que habilitarlo. Cambie la URL de jdbc:postgresql://100.64.35.52":5432/masterdb
a jdbc:postgresql://100.64.35.52":5432/masterdb?sslmode=require
Verifique los detalles del modo sobre el modo ssl en http://www.postgresql.org/docs/9.1/static/libpq-ssl.html
Ver mi respuesta here , básicamente tuve que poner user / pwd en la propiedad url
url="jdbc:postgresql://server:port/mydb?user=fred&password=secret"
Ajustes combinados
Probé las sugerencias dadas por @ craig-ringer
jdbc:postgresql://100.64.35.52":5432/masterdb?ssl=true
y dado por @amit
jdbc:postgresql://100.64.35.52":5432/masterdb?sslmode=require
ninguno funciono Pero cuando los combiné para:
jdbc:postgresql://100.64.35.52":5432/masterdb?ssl=true&sslmode=require
Funcionó.