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

WSL2环境下Docker部署MariaDB,Windows10的HeidiSQL无法连接求助

解决MariaDB主机连接拒绝问题(含WSL2场景分析)

一、MariaDB用户权限配置问题

  • 检查用户的主机授权范围:你创建用户时大概率只给了localhost或特定IP权限,比如执行了CREATE USER 'xxx'@'localhost' IDENTIFIED BY 'xxx';,这种情况下Windows上的HeidiSQL属于外部主机,自然连不上。得改成允许任意主机'xxx'@'%',或者指定你Windows主机的具体IP'xxx'@'192.168.x.x'。
  • 别忘了刷新权限:改完用户权限后必须执行FLUSH PRIVILEGES;,不然配置不会生效。
  • 确认当前权限:执行SELECT user, host FROM mysql.user;,看看目标用户的host字段是不是符合你的连接需求。

二、MariaDB绑定地址限制

  • 查一下MariaDB的配置文件(一般是my.cnf或my.ini)里的bind-address参数,如果设成了127.0.0.1,那只能本地连接,得改成0.0.0.0允许所有IP访问,或者直接指定Windows主机的IP。改完重启MariaDB服务才有用。

三、WSL2相关问题(如果MariaDB跑在WSL2里)

  • WSL2 IP动态变化:每次重启WSL2,它的虚拟网卡IP都会变,要是HeidiSQL里填的是旧IP,肯定连不上。在WSL2里执行hostname -I就能拿到当前IP,或者直接给WSL2配置静态IP。
  • 端口转发没设置:Windows主机得把3306端口转发到WSL2的IP上,用命令netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=3306 connectaddress=<WSL2_IP> connectport=3306就能设置,同时要关闭Windows防火墙对3306端口的拦截。
  • 网络模式问题:默认的NAT模式容易出端口映射问题,改成桥接模式(需要修改WSL的.wslconfig配置文件)能让WSL2拿到和Windows同网段的IP,连接起来更顺畅。

四、防火墙/安全软件拦截

  • Windows防火墙或者第三方杀毒软件可能拦住了3306端口的请求,得给MariaDB的3306端口加个允许规则。
  • 要是MariaDB在WSL2里,WSL2自带的防火墙(比如ufw)也可能限制了端口,执行ufw allow 3306就能开放。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 22:15:29