JDBC- postgres,连接被拒绝。

5

这是我第一次使用Java访问数据库,所以我可能有一个简单的错误。当我尝试从我可以访问的远程数据库检索连接时,我会收到一个连接被拒绝的错误。

以下是相关代码:

String url = "jdbc:postgresql:url.isformatted.like.this/database";

try {
    conn = DriverManager.getConnection(url, "username", "password");
} catch (SQLException e) {
    e.printStackTrace();
    System.exit(1);
}

(为了保护隐私,已删除用户名、密码和数据库URL)

问题不可能是凭据或URL本身,因为我使用它手动登录psql成功地从同一台计算机上进行登录。我认为问题可能是URL的格式,但我找不到任何关于在远程地址上使用psql的示例(它们都是本地主机之类的东西)。

3个回答

12
根据http://www.petefreitag.com/articles/jdbc_urls/,以下是有效的url:
jdbc:postgresql:database
jdbc:postgresql://host/database
jdbc:postgresql://host:port/database
jdbc:postgresql://host:port/database?user=userName&password=pass
jdbc:postgresql://host:port/database?charSet=LATIN1&compatible=7.2
在主机名前是否有//?

没有,我没有!(我看到了本地主机的//示例,但我认为它仅适用于本地数据库)谢谢! - RyanCacophony

1

我同意 @Jonathan 的观点,需要将 PostgreSQL JDBC jar 库添加到类路径中:以下是我使用的内容:

private static final String TABLE_NAME = "tablenamegoeshere";
private static final String DRIVER = "org.postgresql.Driver";
private static final String URL = "jdbc:postgresql://url.for.database/DatabaseName";
private static final String USERNAME = "yourusername";
private static final String PASSWORD = "yourpassword";


private static Connection getConnection() throws Exception {
  Class.forName(DRIVER);
  Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
  return conn;
}

0

我刚刚查看了连接到 PostgreSQL 数据库的代码,它看起来像这样:

DriverManager.getConnection(String.format("jdbc:postgresql://%s/%s", server, dbName), userName, password);

此外,请确保在尝试连接之前加载PostgreSQL数据库驱动程序:
Class.forName("org.postgresql.Driver");

同时确保你的类路径中包含了PostgreSQL JDBC Jar库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接