我正在尝试用Maven开发Java应用程序,同时使用Hibernate和PostgreSQL数据库进行持久化.我不明白我应该如何将PostgreSQL驱动程序连接到我的应用程序.我得到你在Maven的pom.xml文件中添加依赖项,该文件从远程存储库中找到jar,但是其他jar呢?
我在linux机器上有一个正在运行的PostgreSql本地实例.当我使用psqlshell中的命令时,我成功登录而没有任何问题.我需要通过JDBC连接到PostgreSql,但我不知道究竟应该将什么作为url参数传递给DriverManager.getConnection().
它应该从jdbc:postgresql:但接下来会发生什么?
系统组告诉我,创建了一个像用户名一样的数据库.例如,如果我的用户是jutky一个名为db的jutky创建者,但是当我尝试打开一个连接时,jdbc:postgresql:jutky我收到一个错误
org.postgresql.util.PSQLException: FATAL: password authentication failed for user "jutky"
:(
附加信息
当我通过psql提示登录时,我没有提示输入密码,所以当我尝试通过JDBC登录时,我传递一个空字符串作为密码 - 它是正确的,还是我应该通过null什么?
当我输入psql --helpshell时,我看到其余的这一行:
Connection options:
-h, --host=HOSTNAME database server host or socket directory (default: "/var/run/postgresql")
Run Code Online (Sandbox Code Playgroud)
所以我理解我通过a连接到PostgreSql socket directory,这对JDBC中的URL字符串有用吗?
编辑
首先要感谢答案.
第二:它不是我第一次使用JDBC,特别是我第一次从JDBC连接到PostgreSql,所以我知道一般规则,我已经阅读了文档.但是在描述的情况下,我不确定如果实例正在运行socket directory并且我应该提供什么密码,我应该如何构造连接字符串.因为当我通过登录时,psql我根本没有提示输入密码.
提前致谢.
我正在尝试连接到 localhost:5432 中的 postgresql 数据库,但我不断收到错误:致命:用户“”的身份验证失败。
我在运行Centos7的虚拟机上安装了Postgres11。通过命令行创建数据库,名称为business_db。
我已经检查过,postgresql 正在 localhost:5432 中运行。
我的 pg_hba.conf 文件是这样的:
# TYPE DATABASE USER ADDRESS METHOD
local all all peer
host all all 127.0.0.1/32 ident
host all all ::1/128 ident
local replication all peer
host replication all 127.0.0.1/32 ident
host replication all ::1/128 ident
Run Code Online (Sandbox Code Playgroud)
pg_ident.conf 文件不包含任何配置:
# Put your actual configuration here
# ----------------------------------
# MAPNAME SYSTEM-USERNAME PG-USERNAME
Run Code Online (Sandbox Code Playgroud)
数据库存在,如命令所示:
我以“dev”用户身份登录系统,但是,无论我在测试 DBeaver 连接时尝试什么,我总是收到错误:
我还尝试将用户设置为 postgres 并使用我的系统密码,但得到相同的错误。我缺少什么?