我正在使用Postgres 9.1.5。 JDBC在第一个实例上工作正常,但是当我再次尝试时它开始拒绝连接。例如,我使用JDBC登录到我的Web应用程序,工作正常。但是,然后,我尝试使用连接来获取其他一些数据,它引发了一个异常:Connection拒绝了。我确信我的代码没有任何问题,因为上次工作正常的登录JDBC也引发了一个异常:Connection Refused。
重新启动postgres windows服务后,它再次起作用。然后,登录JDBC,获取一些数据然后拒绝连接。我尝试过重新安装。我的笔记本电脑有问题吗?
此外,PGAdmin也遇到了同样的问题。它将运行一些查询,然后开始显示错误消息:Postgres服务已停止。 有什么我能做的吗?请指教。 此外,如果需要任何额外信息,请告诉我。
答案 0 :(得分:1)
这种行为基本上有两个原因:
1)你的postgresql仅在127.0.0.1地址绑定,你想从其他计算机上询问他。在这种情况下,您必须检查postgresql.conf文件并检查以listen_addresses
开头的行。必须有'*'。或者您可以使用防火墙,并且您可以访问端口5432,这是默认的Postgresql端口。
2)您在文件pg_hba.conf中设置了错误的权限。请检查这个文件,它显然有一些注释的例子。
答案 1 :(得分:0)
很难猜测,看起来它正常启动但后来遇到问题。在这些情况下,您的第一站应始终是日志文件。快速检查可能是验证配置文件中的max_connections
(文档here),它可能预设为一个非常低的值。如果在pgAdminIII中单击服务器节点,您可以在“统计信息”选项卡下看到所有打开的连接,可能是某个进程占用了所有可用连接的问题。
另一种弄清楚会发生什么的方法是以explained in the official documentation的形式交互式启动postgres服务器(即让它在你启动它的窗口中输出所有消息)。
另外,如果您的服务器在Linux上运行,ps可以帮助您,postgres连接由各个进程管理,即它们单独出现在ps中:
ps ax | grep postgres:
....
20528 ? Ss 0:00 postgres: username dbname clienraddress(48679) idle