我正在尝试使用Postgres并从DBeaver访问它。
- Postgres安装到wsl 2(Ubuntu 20)
- DBeaver已安装到Windows 10
根据this doc,如果您从Windows访问在Linux上运行的应用程序,则可以使用localhost
。
然而...
连接被拒绝localhost
。我也不知道这条信息是什么意思:Connection refused: connect
。
有没有人看到这其中的潜在原因?任何建议将不胜感激。
注意事项:
- 密码应该没问题。当我在wsl 2中使用
psql
并输入密码时,psql
可以使用密码 - 我在Windows端没有Postgres。它只存在于wsl 2上。
2条答案
按热度按时间cuxqih211#
我自己找到了解决办法。
我只需要在wsl 2(Ubuntu)上允许TCP连接,然后重新启动postgres。
我没有更改IPv4/IPv6连接信息。以下是我在
pg_hba.conf
中看到的:lf3rwulv2#
我解决了同样的问题。
顺便解释一下:
WSL作为Docker运行。
在wsl中,localhost对于在wsl中运行的应用程序是有效的。
在外部,在windows中,localhost对于在windows中运行的应用程序有效。
第一种方式:在WSL下安装dbeaver并从那里运行它:localhost作为'主机'将被发现。
第二种方式:如果你已经在windows上安装了dbeaver(或者我的例子中的pgadmin4),你必须使用the adress of the docker on win。要查找它,请执行以下操作:
将此地址添加到您的pg_hba.conf
第二个IP是WSL和WIN之间的链路。我得到了它,当我开始dbeaver从胜利,告诉我这一个也失踪。