在用户端偶发出现数据库连接失败问题,启动数据库服务器发现无法启动,查看windows应用错误日志,发现提示“是否有其他postmaster已经在端口5432上运行,如果没有,请等待几秒钟然后再重试”,但实际不管过多久,数据库服务还是无法启动。使用命令查看5432端口,发现确实有被程序占用,在任务管理器中查看,发现postgres进程显示已挂起。而且只存在一个postgres进程。把挂起进程关闭后,数据库服务能够正常启动。
针对次问题,可以在程序中判断数据库是否启动,如果没有启动,则运行批处理“taskkill /f /im postgres.exe” 将所以postgres进程关闭,然后再重启数据库服务。