1.WSL2连接Windows上的MySQL
- 首先打开你的MySQL,
cmd
或者powershell
,输入mysql -u [你的名字] -p
,再按照提示输入密码,这里一般你是看不到自己输入的密码的,只管回车就行。 - 查看win主机的ip 这个一般是看ipv4的地址,
cmd
键入ipconfig
,找到IPv4的地址。这里可以使用命令mysql -h <Windows主机IP地址> -u <用户名> -p
进行确认,wsl2中使用的连接命令相同。这里可以在wsl2中使用ping [ip 也就是你刚才找到的IP地址]
确认是否链接畅通。 - wsl2中安装组件wsl2中输入
sudo apt update
,sudo apt install mysql-client
以安装相关的组件。 - Windows上的配置 你的MySQL在Windows上,所以这些操作必不可少,打开 MySQL 配置文件
my.ini
(通常位于C:\ProgramData\MySQL\MySQL Server X.X目录
,其中X.X是你的 MySQL 版本号)。不在这个路径也没关系,使用以下命令找到路径即可: -
- 1.查找数据储存路径
SHOW VARIABLES LIKE '%datadir%';
- 1.查找数据储存路径
-
- 2.查找程序的安装路径
SHOW VARIABLES LIKE '%basedir%';
- 2.查找程序的安装路径
万能方法: win+r
搜索services.msc
,统一查找。
找到文件后,找到bind-address这一行,将其修改为0.0.0.0,这会让 MySQL 监听所有可用的网络接口。保存文件后,重启 MySQL 服务。你可以在 “服务” 中找到 “MySQL” 服务,右键选择 “重启”。也可用管理员身份打开cmd,键入net stop MySQL
,然后net start MySQL
。这里可能有的MySQL需要带上版本号,例如net start MySQL80
。
再进行这些操作:
- 打开 MySQL 命令行客户端,使用管理员账户登录。
- 执行以下 SQL 语句来创建一个允许从任意 IP 地址访问的用户:
CREATE USER 'new_user'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'%'; FLUSH PRIVILEGES;
将new_user替换为你想要的用户名,password替换为你设定的密码。
连接数据库 在wsl2中输入mysql -h <Windows主机IP地址> -u <用户名> -p
,一般情况就打开了
2. debug
name@LAPTOP-M1CRG44O:~$ mysql -h 00.000.00.000 -u wsl_user -p Enter password: ERROR 2003 (HY000): Can't connect to MySQL server on '00.000.00.000:3306' (111)
我被这种情况困扰了好久,最后在stackflow上找到一个可行的方法,以 mysql --protocol=TCP -P3306 -u wsl_user -p
进行登录。具体原因我还没有去搞清楚,希望有大佬可以解答!!!