postgresql - psql:无法连接到服务器:连接被拒绝
问题描述
我可以访问远程 postgesqlpsql -h xxx.xxx.xxx.xxx -p 1486 postgres
它显示了这个错误
psql: could not connect to server: Connection refused
Is the server running on host "xxx.xxx.xxx.xxx" and accepting
TCP/IP connections on port 1486?
postgresql.conf文件
listen_addresses = '*'
pg_hba.conf文件
host all all 0.0.0.0/0 md5
同时申请开放1486端口
iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d X.X.X.X --dport 1486 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s X.X.X.X --sport 1486 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
它返回相同的错误。
解决方案
很难给出一个规范的答案,但这里有一些事情可以尝试(其中一些可能不适用/可能):
- ping 有问题的 IP 地址 - 服务器是否已启动/可访问?盒子上是否还有其他可以访问的服务?
- 假设您具有控制台或 ssh 访问权限,则从服务器本身的本地连接进行连接
- 如果您具有本地访问权限并且基于网络的访问权限不起作用,是否允许 unix 域套接字访问,如果允许,那是否有效?
- 检查 postgresql.conf 中的端口配置 - 它真的在您认为的位置吗?
- 自上次服务器重新启动以来,配置文件是否已被编辑?您列出的参数都需要重新启动服务器才能生效。
- 它实际上是在使用您认为的配置文件吗?运行“显示配置文件;” 如果您可以建立本地连接,超级用户会有所帮助
- telnet 1486 会发生什么?您是否收到网络连接或类似错误?
- 获取 pcap 并检查网络级别发生的情况(wireshark 或 tcpdump 会有所帮助)
推荐阅读
- git - 即使我添加,Git 提交也不起作用,它说“没有为提交暂存更改”
- c - 如何从进程中分离,以便它可以被另一个进程跟踪?
- python - 在 python 中,生成元组的最快方法是什么:(1.0, 0.0, 0.0, 2.0, 0.0, 0.0, ..., N, 0.0, 0.0)?
- c# - Windows Form App C#调用DbContext的正确方法
- python - 给定原始和卷积一维数据的核估计
- javascript - 我需要使用 localstorage 保存用户名
- docker - 码头集装箱 - 缺少属性
- python - Python在列表中搜索多个单词
- javascript - 避免在函数内复制代码(仅限 Javascript)
- php - 作为每个 SQL 的一部分 - Laravel