0%

通过Windows上MySQL Workbench连接WSL上的MySQL

在WSL上安装好后MySQL, 但是WSL并没有图形界面. 每次用命令行不方便. 于是想用win下面的MySQL workbench连接wsl上的MySQL.

在网上查了很多解决方案, 最后都没有解决问题. 踩了很多坑. 特此记录下解决问题的步骤, 供网友参考.

有的是直接填上wsl的ip地址和端口号3306就可以用了, 但是我的不行.

有的是修改配置文件/etc/mysql/mysql.conf.d/mysqld.cnf, 将bind-address = 127.0.0.1这一行配置注释掉. 也不管用.

最后发现直接修改端口号即可. 在文件/etc/mysql/mysql.conf.d/mysqld.cnf添加port = 3307 , 然后进入数据库执行允许远程操作的命令.

这里还有个坑, 如果你用的是mysql 8.0+, 那么网上搜的有的命令是会报错的. 因为那是5.7版本用的命令. 8.0不兼容.

1
2
# before 5.7
grant all privileges on *.* to 'root'@'%' identified by '你的密码' with grant option;

在8.0之后, 应该这样操作

1
2
3
4
CREATE USER 'root'@'%' IDENTIFIED BY '你的密码'; 
GRANT ALL ON *.* TO 'root'@'%';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;

然后重启mysql sudo service mysql restart即可

在windows的workbench下, 使用localhost:3307 用户名为root即可完成远程连接.

最后还要注意, 以后再连接的时候, 也必须进入wsl手动开启mysql服务sudo service mysql start. 因为默认状态下wsl不会开启mysql服务.