关键字:WSL,mysql ,网络,防火墙。

正常访问mysql的前提需解决这两个问题:

1.获取宿主IP

WSL中安装Ubuntu后,可以直接访问本机的mysql,但是地址并不是127.0.0.1 ,需要通过以下方式获取:

ip route | grep default | awk '{print $3}'

或者

cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }'

然后就可以使用 mysql -h来登录了。

#也可以通过配置成永久别名,便捷访问,如何配置成永久别名请自行查询:
alias mysql='mysql -h$(grep -oP '\''(?<=nameserver )[0-9\.]*'\'' /etc/resolv.conf) -uroot -p'

2.需在mysql数据库中允许远程访问

,设置方式如下:
windows登录mysql执行以下语句

update mysql.user set host = '%' where user = 'root';
flush privileges;

此操作之后,即可允许通过192.xxx或172.xx等ip访问。

但是有时候完成以上操作后,还是不能访问,则可能是防火墙的原因,如果不想关闭公用网络防火墙,解决办法如下:

直接放开 vEthernet (WSL) 这张网卡的防火墙

使用管理员打开Windows PowerShell,执行以下命令

New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow

命令来源:https://github.com/microsoft/WSL/issues/4585
感谢网友的总结:https://cat.ms/wsl2-network-tricks?login=from_csdn

在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐