You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法连接WSL2内部运行的MySQL服务的问题求助

WSL2运行MySQL无法被Windows端工具连接的解决方案
  • 检查WSL2内MySQL的绑定地址配置
    进入WSL2终端编辑MySQL配置文件,常见路径为/etc/mysql/mysql.conf.d/mysqld.cnf,找到bind-address配置项,默认值为127.0.0.1仅允许本地访问,修改为0.0.0.0或直接注释该行,修改后重启MySQL服务,Ubuntu发行版执行命令为sudo systemctl restart mysql。
  • 检查MySQL用户的访问权限
    WSL2内登录MySQL,执行SELECT user, host FROM mysql.user;查看用户的访问地址限制,如果用于连接的用户host仅为localhost,需要修改授权规则,示例命令如下:
    GRANT ALL PRIVILEGES ON *.* TO '你的用户名'@'%' IDENTIFIED BY '你的MySQL密码' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    
    生产环境不要使用%通配符,按需限制访问地址提升安全性
  • 配置Windows防火墙放行规则
    端口转发需要防火墙放行3306端口的入站请求,执行以下命令添加规则:
    netsh advfirewall firewall add rule name="WSL2 MySQL 3306" dir=in action=allow protocol=TCP localport=3306
  • 确认WSL2当前IP与转发规则匹配
    WSL2每次重启后IP会自动变更,若之前配置转发时使用的IP已过期会导致转发失效,在WSL2内执行ip addr show eth0 | grep 'inet ' | awk '{print $2}' | cut -d/ -f1获取当前真实IP,先删除旧的转发规则:
    netsh interface portproxy delete v4tov4 listenport=3306 listenaddress=0.0.0.0
    再执行你原有的端口转发命令,替换connectaddress为最新获取的WSL2 IP即可。
  • 验证配置是否生效
    执行netsh interface portproxy show all可查看当前所有端口转发规则,确认3306端口的转发地址和端口配置正确。你提供的netstat结果显示3306端口已处于监听状态,说明转发监听配置已生效,优先排查上述几项问题即可。

内容的提问来源于stack exchange,提问作者sunny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:36:04