我在我的电脑上有一个PostgreSQL数据库。 Postgres服务器在端口5432上运行。当我进入另一台PC并输入telnet server.ip 5432
时,我设法连接。但是,当我尝试使用Java进行连接时:
connection = DriverManager.getConnection("Jdbc:postgresql:mydb://server.ip:5432/", "user", "pass");
我收到以下错误:Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
有人可以告诉我问题可能是什么吗?
更新
我将连接字符串更改为:
connection = DriverManager.getConnection("jdbc:postgresql://server.ip:5432/mydb", "user", "pass");
现在我收到错误FATAL: no pg_hba.conf entry for host "client.ip", user "user", database "mydb", SSL off
答案 0 :(得分:2)
您的JDBC连接字符串错误。文档说明这些是允许的格式:
jdbc:postgresql:database
jdbc:postgresql://host/database
jdbc:postgresql://host:port/database
但不 - 与您的情况一样:
Jdbc:postgresql:databse://host:port/
(另请注意字符串中的大写字母J
,也是不允许的)
答案 1 :(得分:1)
您需要配置身份验证文件/etc/postgresql/x.x/main/pg_hba.conf
添加以下行:
# TYPE DATABASE USER ADDRESS METHOD
host all all my.pc.ip/Prefix-netmask md5
之后重新启动postgresql服务器:
# /etc/init.d/postgresql restart