gpt4 book ai didi

macos - 在 Mac 中通过网络访问 postgresql 服务器

转载 作者:行者123 更新时间:2023-11-29 11:53:00 28 4
gpt4 key购买 nike

我已经安装了Postgres App在我的 Mac 上运行数据库。

我可以使用命令 psql -h localhost 从终端连接它

现在我想从同一网络上的另一台机器访问此服务器。

当我做 psql -h <hostname> -U <username>从另一台机器上,我收到错误

psql: could not connect to server: Connection refused
Is the server running on host "my hostname" (xx.xx.xx.xxx) and accepting
TCP/IP connections on port 5432?

在我运行服务器的机器上 lsof -i | grep LISTEN我得到以下结果。

postgres  3196 sudarm    5u  IPv6 0x1caf6120      0t0  TCP localhost:5432 (LISTEN)
postgres 3196 sudarm 6u IPv4 0x14678db0 0t0 TCP localhost:5432 (LISTEN)
postgres 3196 sudarm 7u IPv6 0x1caf6a80 0t0 TCP localhost:5432 (LISTEN)

我还需要做任何其他事情才能从另一台机器连接到服务器吗?

最佳答案

错误消息提出了正确的问题:服务器是否接受端口 5432 上的连接?您提供的 lsof 输出表明不,事实并非如此。 PostgreSQL 正在监听 localhost:5432,这意味着它将只接受来自数据库服务器本身的连接。

打开服务器的postgresql.conf,设置listen_addresses = '*',重启PostgreSQL。然后它将监听所有接口(interface)上的连接,从而接受网络上的连接。

从这里开始,您可能会遇到的下一个问题是身份验证。 (PostgreSQL 将接受连接,但您可能没有告诉它一旦通过网络建立连接后该做什么。)确保服务器的 pg_hba.conf 具有与您的数据库/用户/匹配的条目源地址组合——像 host all all 10.0.0.0/8 md5 这样的组合可能是合适的——并根据需要重新加载 PostgreSQL 以应用更改。

md5 部分告诉 PostgreSQL 尝试使用密码进行身份验证,因此如果您还没有设置密码,则还需要为相关用户设置密码。从您通常管理数据库的方式(例如数据库服务器上的 psql template1),说ALTER USER whomever WITH PASSWORD 'your_new_password'

关于macos - 在 Mac 中通过网络访问 postgresql 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13134325/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com