Tengo una instancia local en ejecución de PostgreSql en una máquina Linux. Cuando utilizo el comando psql
del shell, tuve éxito al iniciar sesión sin ningún problema. Necesito conectarme a PostgreSql a través de JDBC, pero no sé exactamente qué debo pasar como parámetro url
a DriverManager.getConnection()
.Conexión a la instancia local de PostgreSql con JDBC
Debería comenzar con jdbc:postgresql:
, pero ¿qué sigue?
El grupo de sistemas me dijo que se había creado una base de datos con el nombre de usuario. p.ej. si mi usuario es jutky
una base de datos nombrado jutky
fue creado, pero cuando intento abrir una conexión a jdbc:postgresql:jutky
me sale un error
org.postgresql.util.PSQLException: FATAL: password authentication failed for user "jutky"
:(
Otros detalles
Cuando me conecto a través psql
No se me pide la contraseña, así que cuando intento iniciar sesión a través de JDBC, paso una cadena vacía como contraseña: ¿es correcta, o debo pasar null
o algo así?
Cuando escribo psql --help
en la cáscara veo entre el resto de esta línea:
Connection options:
-h, --host=HOSTNAME database server host or socket directory (default: "/var/run/postgresql")
por lo que entiendo que me conecto a través de un PostgreSql socket directory
, hace algo que importa a la cadena de URL en el JDBC?
EDITAR
primer lugar gracias por las respuestas.
Segundo: no es la primera vez que uso JDBC y, en particular, no la primera vez que me conecto a PostgreSql desde JDBC, así que conozco las reglas generales y he leído la documentación. Sin embargo, en el caso descrito no estoy seguro de cómo exactamente debo construir la cadena de conexión si la instancia se está ejecutando a través del socket directory
y qué contraseña debo proporcionar. Porque cuando inicio sesión a través del psql
no me piden ninguna contraseña.
Gracias de antemano.
Le pedí al grupo del sistema que verificara el problema. Gracias por el consejo. – jutky
También asegúrese de que listen_address = '*' esté habilitado en postgresql.conf. De lo contrario, la conexión TCP/IP no será posible en absoluto (que es lo que JDBC está usando, incluso con una conexión local) –
@jutky: Actualizado. – axtavt