WSL2中Ubuntu的MySQL Server无法通过Windows端MySQL Workbench正常连接及显示数据库
WSL2 Ubuntu MySQL 允许Windows端GUI工具连接解决方案
问题根因说明
你当前遇到的现象本质是Windows本地和WSL2 Ubuntu内运行了两个完全独立的MySQL服务,二者数据、账号密码完全隔离,默认MySQL Workbench连接的是Windows本地的MySQL服务,因此和WSL2内数据不一致。
具体操作步骤
- 第一步:修改WSL2内MySQL的监听配置
默认Ubuntu的MySQL仅监听本地127.0.0.1地址,外部无法访问:- 打开配置文件:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf - 找到
bind-address = 127.0.0.1配置项,修改为bind-address = 0.0.0.0 - 重启MySQL服务生效:
sudo systemctl restart mysql
- 打开配置文件:
- 第二步:给MySQL root账号开放远程访问权限
默认root账号仅允许本地登录,需额外授权:- 在WSL2终端登录MySQL:
mysql -u root -p,输入Ubuntu端MySQL的root密码进入命令行 - 执行授权命令,替换为你自己的root密码:
CREATE USER 'root'@'%' IDENTIFIED BY '你的Ubuntu MySQL root密码'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; - 在WSL2终端登录MySQL:
- 第三步:确认WSL2的IP地址
在WSL2终端执行ip addr show eth0,找到inet对应的IP段(格式一般为172.xx.xx.xx)若你使用Windows 11或Windows 10 21H2及以上版本,WSL2默认开启localhost转发,也可直接用
localhost作为连接地址 - 第四步:配置MySQL Workbench连接
新建连接参数如下:- 主机名:填写上一步拿到的WSL2 IP地址(或localhost)
- 端口:默认3306
- 用户名:root
- 密码:填写Ubuntu端MySQL的root密码,不要使用Windows本地MySQL的密码
- 可选:放行WSL2防火墙端口
若仍连接失败,执行sudo ufw allow 3306放行3306端口访问
常见优化
WSL2默认重启后IP会变化,若不想每次修改连接配置,可以自行配置WSL2静态IP、或者设置Windows端口转发到WSL2固定地址。
内容的提问来源于stack exchange,提问作者Stanleyy
相关产品推荐
相关产品推荐

