当在PostgreSQL中遇到”could not connect to server”错误,无法连接时,应该采取的措施是什么?
有什麼問題?
因为在连接PostgreSQL时遇到以下错误导致困扰,因此我将提供对应的解决方法。
psql:无法连接到服务器:连接被拒绝。服务器是否在主机“localhost”上运行,并接受端口5432上的TCP/IP连接?
我的环境如下所示。
-
- Windows10 64bit
- PostgreSQL Ver.10.10
答案: 解決方法
在我的环境中,通过重新启动PostgreSQL解决了问题。
不过,使用从“开始菜单”->“计算机管理”重新启动PostgreSQL的方法并未成功。
我试过使用命令提示符成功地重新启动了计算机。
重启 pg_ctl -D “C:\Program Files\PostgreSQL\10\data”。
请根据您安装的文件夹和PostgreSQL版本来更改上述路径。
您需要以管理员身份运行命令提示符。
我认为会返回类似以下的执行结果示例。
正在等待服务器停止处理的完成….完成
服务器已停止
正在等待服务器启动完成….2019-11-27 02:23:00.130 JST [4728] LOG: IPv6地址”::”,监听端口5432
2019-11-27 02:23:00.130 JST [4728] LOG: IPv4地址”0.0.0.0″,监听端口5432
2019-11-27 02:23:00.149 JST [4728] LOG: 正在将日志输出重定向到日志收集进程
2019-11-27 02:23:00.149 JST [4728] 提示: 从这里开始的日志输出将出现在目录”log”中。
完成
服务器启动完成
看起来只有在PostgreSQL正常关闭之后,才会保留下postmaster.pid文件并导致启动失败。
我通过重新启动解决了这个问题,但如果无法解决,听说可以先删除postmaster.pid文件,然后再重新启动就可以了。
该文件位于C:\Program Files\PostgreSQL\10\data\postmaster.pid。
请根据您自己的安装文件夹和PostgreSQL版本做相应修改。
据说还有其他原因导致发生相同的错误,包括以下原因:
-
- ポート5432が空いていなかった
-
- postgresql.confの設定が足りず他のホストのアクセスを受け付けていなかった
- pg_hba.confの設定がされていなかった
“对应方法是,psql:无法连接到服务器:拒绝连接。服务器在主机“hoge”上运行,并且接受端口5432上的TCP/IP连接。详细信息请参考DQNEO日记。”
文献引用
在Windows操作系统中,通过PostgreSQL的pg_ctl命令来启动、停止和确认启动状态- Sier工程师的博客
无法连接到PostgreSQL并感到困扰 – Qiita