我有一个在linux机器上运行的PostgreSql本地实例.当我使用shell中的psql
命令时,我成功登录,没有任何问题.我需要通过JDBC连接到PostgreSql,但我不知道应该将什么作为url
参数传递给DriverManager.getConnection()
.
应该从jdbc:postgresql:
开始,但接下来会发生什么?
系统组告诉我,创建了一个类似用户名的数据库.e、 g.如果我的用户是jutky
,则会创建一个名为jutky
的数据库,但当我try 打开与jdbc:postgresql:jutky
的连接时,会出现错误
org.postgresql.util.PSQLException: FATAL: password authentication failed for user "jutky"
Additional info
当我通过psql
登录时,我不会被提示输入密码,所以当我try 通过JDBC登录时,我会传递一个空字符串作为密码——这是正确的,还是应该传递null
或其他什么?
当我在shell中键入psql --help
时,我在其余部分中看到这一行:
Connection options:
-h, --host=HOSTNAME database server host or socket directory (default: "/var/run/postgresql")
所以我知道我通过socket directory
连接到PostgreSql,这对JDBC中的URL字符串有什么影响吗?
EDIT
首先谢谢你的回答.
第二:这不是我第一次使用JDBC,尤其不是我第一次从JDBC连接PostgreSql,所以我知道一般规则,并且我已经阅读了文档.然而,在所描述的情况下,如果实例通过socket directory
运行,我不确定应该如何构造连接字符串,以及应该提供什么密码.因为当我通过psql
登录时,我根本不会被提示输入密码.
提前谢谢.