📌  相关文章
📜  [08001] 与 localhost:5432 的连接被拒绝.检查主机名和端口是否正确以及 postmaster 是否接受 TCP IP 连接. java.net.ConnectException:连接被拒绝:连接. - Java (1)

📅  最后修改于: 2023-12-03 15:13:11.884000             🧑  作者: Mango

[08001] 与 localhost:5432 的连接被拒绝

这是一个数据库连接错误,它表示应用程序试图连接到PostgreSQL数据库(使用jdbc驱动程序),但无法连接到数据库。可能的原因是:

  • 主机名或端口错误
  • postmaster未接受TCP/IP连接
  • 数据库服务器已关闭或未运行

常见的解决方案:

  1. 检查主机名和端口是否正确

确保主机名和端口正确无误。如果您使用的是本地PostgreSQL服务器,则应该将主机名设置为localhost。默认情况下,PostgreSQL使用5432端口。如果已更改,请确保您使用正确的端口。

  1. 检查postmaster是否接受TCP IP连接

检查postmaster的配置文件postgres.conf,确保“ listen_addresses”设置正确。如果设置为“ localhost”,则只允许本地连接。如果未设置为“ *”,则只允许特定IP地址的连接。如果未设置“ listen_addresses”,则默认情况下只允许本地连接。

  1. 确认数据库服务器已启动

请确保PostgreSQL服务器正在运行。您可以在控制台上启动服务器。您还可以检查postmaster的日志文件以获得有关服务器状态的更多信息。

示例代码片段:

try {
    Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/mydatabase", "myuser", "mypassword");
    // 连接成功,进行数据库操作
} catch (SQLException e) {
    // 连接失败,打印错误信息
    System.out.println(e.getMessage());
}

注意,在上面的代码片段中,“mydatabase”是要连接的数据库名称,“myuser”是数据库用户的名称,“mypassword”是该用户的密码。您需要将它们替换为真实的值。