PhpStorm中通过WSL连接PostgreSQL

问题描述

在 Windows 10 上运行 PHPStorm。Postgresql 在我的 Ubuntu 20.04 的 WSL 实例上。

使用 PHPStorm 中的内置数据库接口/浏览器尝试连接到使用 wsl hostname -I 找到的 IP。

Image Settings in PhpStorm

是否有我想使用的不同端口或设置?谢谢!

解决方法

希望这个答案还不算晚。

我的数据库在 WSL 机器内运行的 Docker 容器内运行。因此,为了连接到数据库,我必须登录到我的 WSL 实例并在那里运行 ip addr 命令。输出将类似于:

## NOTE THAT I REMOVED SOME UNRELEVANT LINES IN ORDER TO SIMPLIFY MY ANSWER

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
   valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
   valid_lft forever preferred_lft forever
4: eth0: <BROADCAST,MULTICAST,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:e9:56:df brd ff:ff:ff:ff:ff:ff
inet 172.21.130.250/20 brd 172.21.143.255 scope global eth0
   valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fee9:56df/64 scope link
   valid_lft forever preferred_lft forever
5: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
7: docker0: <NO-CARRIER,BROADCAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:fc:eb:bc:5e brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
   valid_lft forever preferred_lft forever

WSL IP 是 172.21.130.250,所以我用对应于 WSL 实例的 IP (172.21.130.250) 和 MySQL 端口 (18766 - 因为我的数据库在 Docker 中运行,所以我在 PhpStorm 中填充了端口与默认 3306 不同,可以在您的 Docker 配置中找到)。效果很好。