0

我正在使用 Postgres 9.1.5。JDBC 在第一个实例上运行良好,但是当我再次尝试时它开始拒绝连接。例如,我使用 JDBC 登录到我的 Web 应用程序,工作正常。但是后来,我尝试使用连接来获取其他一些数据,它引发了一个异常:连接被拒绝。我确信我的代码没有任何问题,因为上次运行良好的登录 JDBC 也会引发异常:连接被拒绝。

在我重新启动 postgres windows 服务后它再次工作。然后,登录 JDBC,获取一些数据,然后连接被拒绝。我试过重新安装。我的笔记本电脑有问题吗?

此外,PGAdmin 也遇到了同样的问题。它会运行一些查询,然后开始显示错误消息:Postgres 服务已停止。有什么我可以做的吗?请指教。另外,如果需要任何额外的信息,请告诉我。

4

2 回答 2

1

这种行为基本上有两个原因:

1) 您的 postgresql 仅绑定在 127.0.0.1 地址上,您想从其他计算机询问他。在这种情况下,您必须检查 postgresql.conf 文件并检查行开头listen_addresses。必须有'*'。或者你可以使用防火墙并且你已经保护了对端口 5432 的访问,这是默认的 Postgresql 端口。

2) 您在文件 pg_hba.conf 中设置了错误的权限。请检查这个文件,它显然有一些注释示例。

于 2012-10-16T10:55:27.467 回答
0

很难猜测,看起来它可以正常启动,但稍后会遇到问题。在这些情况下,您的第一站应该始终是日志文件。快速检查可能是max_connections在配置文件(此处的文档)中进行验证,它可能预设为一个低得离谱的值。如果在 pgAdminIII 中单击服务器节点,您也可以在“统计”选项卡下看到所有打开的连接,这可能是某个进程占用了所有可用连接的问题。

另一种确定发生情况的方法是交互式启动 postgres 服务器(即,让它在您启动它的窗口中输出所有消息),如官方文档中所述

此外,如果您的服务器在 Linux 上运行,ps 可以帮助您,postgres 连接由单独的进程管理,即它们单独出现在 ps 中:

ps ax | grep postgres:
....
20528 ?        Ss     0:00 postgres: username dbname clienraddress(48679) idle
于 2012-10-16T10:20:25.050 回答