【问题标题】:Postgres server not listeningPostgres 服务器不听
【发布时间】:2015-09-14 12:05:23
【问题描述】:

我正在尝试将我的客户端 (Macbook Pro) 连接到位于同一网络中另一台 PC (Ubuntu) 中的 Postgres 数据库 我可以使用 pgAdmin 从主机查看数据库,连接到 localhost,但我无法从客户端查看。

我已允许pg_hba.confpostgresql.conf 中的所有连接

我正在尝试通过 pgAdmin 从客户端连接到存储数据库的 IP 服务器 (192.168.1.34) 和端口 5432

我得到这个错误 我做错了什么?

我错过了什么

阅读建议后,我可以说: 在 ubuntu 机器(家庭测试服务器)上,我没有防火墙。 Postgres 正在运行。

我尝试从 ubuntu 控制台访问数据库: psql -h 127.0.0.1 mydatabase postgres 并且可以连接(表示服务器正在运行且用户名ok) 但是,如果我尝试从同一台机器访问同一个数据库,用 IP 更改 localhost,我无法连接。 当我从服务器连接时,psql -h 127.0.0.1 mydatabase postgres 不应该与psql -h 192.168.1.34 mydatabase postgres 相同吗?

也许像 Alain 建议的那样处于环回状态?

【问题讨论】:

  • 您确定您的用户名和密码吗?

标签: postgresql remote-access pgadmin


【解决方案1】:

我也有同样的问题,甚至想过:

listen_address = '*'

什么时候做

netstat -anpt | grep LISTEN

5432 端口没有监听。

问题出在 pg_hba.conf* 中:我已将服务器配置为仅接受与每个主机匹配的本地(套接字)连接:

local   all      username       0.0.0.0/0               md5

local 更改为 host 解决了问题

host   all      username       0.0.0.0/0               md5

【讨论】:

    【解决方案2】:

    你可能已经配置了以下两个文件

    pg_hba.conf:

    host all all 0.0.0.0/0 md5
    

    postgresql.conf

    listen_addresses='*'
    

    你要检查5432端口是否打开:http://www.yougetsignal.com/tools/open-ports/

    如果不是,则向您的 iptables 添加规则:

    iptables -A INPUT -s 0/0 -p tcp --dport 5432 -j ACCEPT
    

    0/0:如果您希望任何人访问它。
    您可以将其更改为特定的 IP 地址或 IP 地址范围。

    【讨论】:

      【解决方案3】:

      您已允许 postgresql 接受来自外部网络的请求。为此,您必须更改位于/etc/postgresql/{version_code}/main 的两个文件 第一个是pg_hba.conf,打开并

      host all all ::1/128 md5 更改为host all all 0.0.0.0/0 md5

      第二个是postgresql.conf,打开和

      listen_address = 'localhost' 更改为listen_address = '*'

      现在重启 postgre 服务器。

      【讨论】:

      • 如果没有效果怎么办?
      【解决方案4】:

      在 ubuntu 17.04 默认端口是 5433 检查路径 /etc/postgresql/9.6/main 中的文件 postgresql.conf

      【讨论】:

        【解决方案5】:

        它没有连接,因此它可能没有在正确的接口上侦听或被防火墙阻止。

        postgres 正在运行吗?

        sudo service postgresql status
        

        postgres 是否在您的 LAN IP 或 0.0.0.0(所有接口)上侦听 tcp/5432?

        netstat -anpt | grep LISTEN
        

        它可能只在 127.0.0.1(环回)上侦听,这意味着它无法从 Mac 访问。

        如果它没有在监听或处于环回状态,请检查 postgresql.conf 中的 listen_addresses:

        http://www.postgresql.org/docs/9.1/static/runtime-config-connection.html

        Ubuntu 机器上是否运行防火墙?

        确保至少允许从 Mac 的 IP 到 tcp/5432 的入站连接。

        GUFW 使这更容易配置,但也可以使用 iptables 来完成。

        Ubuntu 设置的进一步参考:

        https://help.ubuntu.com/community/PostgreSQL

        【讨论】:

        • @ppardoz 这能回答你的问题吗?如果是,请标记为正确。
        • 有趣的编辑。 Postgres 肯定正在运行,并且允许本地主机上的 TCP 连接。这听起来像是在环回或 pg_hba.conf 不允许 postgres 从远程主机登录。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-05-26
        • 1970-01-01
        • 1970-01-01
        • 2020-02-26
        • 2010-10-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多