ShawnYue
V2EX  ›  Windows

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

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