我有一个运行 postgreSQL 的 IP 地址为 192.168.0.192 的虚拟机。
如果我指定
listen_addresses = '*'
Run Code Online (Sandbox Code Playgroud)
然后我可以从位于 192.168.0.191 的另一个虚拟机和本地主机连接。
但是我似乎无法使用列表来告诉postgreSQL 使用这两个地址。如果我将 listen_addresses 更改为列表:
listen_addresses = '192.168.0.191, localhost'
Run Code Online (Sandbox Code Playgroud)
然后我无法再从 192.168.0.191 连接。
我注意到 stackexchange 上的几乎所有示例都将 listen_addresses 设置为“*”。这是因为列表形式不起作用吗?
Cra*_*ger 56
是的,listen_addresses可以设置为本地主机上的地址列表以绑定到侦听。
在你的例子中:
listen_addresses = '192.168.0.191,本地主机'
如果本地机器有 IP 192.168.0.192,您应该指定该 IP,而不是远程主机192.168.0.191IP。PostgreSQL 无法绑定到远程主机的 IP 地址。
您不是说“允许谁连接”,而是说“PostgreSQL 应该接受哪些接口上的连接”。“谁可以连接”位是下一个,并在pg_hba.conf.
所以:试试'192.168.0.192, localhost'。或者只是*,因为您可能实际上想要监听所有网络接口。
小智 6
我发现如果您还指定任何其他地址,则localhost不需要使用它。127.0.0.1
因此,在我监听 Docker 主机 IP 地址和本地主机(但不监听外部 IP)的情况下,这是行不通的(我的 Docker 容器内部连接被拒绝):
listen_addresses = '172.17.0.1, localhost'
Run Code Online (Sandbox Code Playgroud)
但这确实:
listen_addresses = '172.17.0.1, 127.0.0.1'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51025 次 |
| 最近记录: |