暂无图片
psql -h 无法连接,只能本地连接,如何排查
我来答
分享
暂无图片 匿名用户
psql -h 无法连接,只能本地连接,如何排查

psql -U postgres -h 192.168.200.29 -p 5432


psql -U postgres -p 5432 


psql -h 无法连接,只能本地连接,如何排查

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
Mjwlan

如果你尝试使用"psql -h"命令连接到数据库时,无法连接,并且只能进行本地连接,你可以按照以下步骤进行排查:

  1. 确认远程连接配置:首先,请确保数据库服务器的网络设置允许远程连接。检查数据库服务器的防火墙设置、网络连接和IP地址等是否正确配置。确认数据库服务器是否在指定的IP地址上侦听。

  2. 检查网络连通性:确保你的客户端机器与数据库服务器之间存在网络连通性。尝试使用ping命令或其他网络工具来测试客户端机器和数据库服务器之间的连接是否正常。

  3. 检查数据库监听端口:确认数据库服务器正在监听正确的端口号。默认情况下,PostgreSQL使用5432端口进行监听。使用telnet或其他工具测试客户端机器是否能够连接到该端口。

    例如,使用以下命令测试连接:

    复制代码

    telnet 192.168.200.29 5432

    如果连接成功,你将看到类似于以下内容的结果:

    复制代码

    Trying 192.168.200.29... Connected to 192.168.200.29. Escape character is '^]'.
  4. 如果不通,请检查服务及防火墙。

  5. 检查pg_hba.conf文件:验证数据库服务器上的pg_hba.conf文件中的身份验证规则配置是否允许远程连接。确保在pg_hba.conf文件中配置了允许指定IP地址范围或子网连接。

    例如,可以在pg_hba.conf文件中添加以下规则,以允许来自192.168.200.0/24子网的连接:

    复制代码

    host all all 192.168.200.0/24 md5
  6. 检查postgresql.conf文件:确保数据库服务器上的postgresql.conf文件中的listen_addresses配置项设置为允许远程连接。你可以将其设置为"*"来允许任何IP地址进行连接,或者指定特定的IP地址。

    例如,要允许任何IP地址进行连接,请确保以下配置存在于postgresql.conf文件中:

    复制代码

    listen_addresses = '*'

    完成这些步骤后,尝试使用"psql -h"命令连接到数据库。如果问题仍然存在,请检查错误消息和日志文件,以获取更多详细信息。

暂无图片 评论
暂无图片 有用 8
subverter

检查这个postgresql.conf文件,同时postgresql.conf修改listen_addresses = '*'

然后pg_ctl reload 

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏