ShawnYue
V2EX  ›  Windows

为什么 WSL2 里跑在 0:0:0:0 的项目可以在 Windows 上直接使用 localhost 访问, mysql 却连接不上

  •  
  •   ShawnYue · Jul 10, 2021 · 4581 views
    This topic created in 1950 days ago, the information mentioned may be changed or developed.

    我 Spring boot 和 Golang 项目放在 0:0:0:0 里面运行可以在 Windows 下面通过 localhost:端口直接访问,那按理来说 mysql 也可以直接在 Windows 下的 navicat 连接 localhost:3306 来访问,结果连接不上,必须要把 localhost 改成 wsl2 的 ip 地址才能连上

    11 replies  •  2021-07-12 12:53:35 +08:00
    xstress
    xstress
    Jul 10, 2021
    1
    是的啊,我就用的 wsl2 里面的 ip 地址访问的,好像是 172 开头的
    ShawnYue
    ShawnYue
    OP
    Jul 10, 2021
    3
    @xstress 但是 wsl2 的 ip 地址是动态的,每次重启都要重新连接,感觉有点烦。想直接通过 localhost 来连接,不然的话就只有改成静态 ip 了
    ihidchaos
    ihidchaos
    Jul 10, 2021 via iPhone
    4
    BeautifulSoap
    BeautifulSoap
    Jul 10, 2021
    5
    ShawnYue
    ShawnYue
    OP
    Jul 11, 2021 via Android
    6
    @midknight 非常感谢,按贴的视频参考的 issue 解决了
    AoEiuV020
    AoEiuV020
    Jul 11, 2021 via Android
    7
    wsl2 跑服务靠不住,我之前折腾很久各种问题最后还是换虚拟机了,虚拟机桥接网卡静态 ip 一切顺利,
    joesonw
    joesonw
    Jul 11, 2021 via iPhone
    8
    mysql 是要改监听地址吧,默认绑定了 127.0.0.1 ?
    lotmany
    lotmany
    Jul 11, 2021 via iPhone
    9
    放弃 wsl 了 用 multipass,自动 ddns 到 hostname.mshome.net , 加个 netsh 的 gui 配置端口转发,比 wsl 省事多了。
    zlowly
    zlowly
    Jul 12, 2021
    10
    有没试过用::1 来访问?
    julyclyde
    julyclyde
    Jul 12, 2021
    11
    mysql 里使用 localhost 一般来说就是“不用 tcp/ip 协议”的意思
    windows 里应该是 named pipe ; linux 上是 unix domain socket
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2192 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 135ms · UTC 14:18 · PVG 22:18 · LAX 06:18 · JFK 09:18
    ♥ Do have faith in what you're doing.