[WSL2] WSL2 下安装MySQL,并从Win10连接

WSL2 下 Ubuntu 下载 MySQL8 并与WIN10连接记录。

安装过程

参考链接

1. 移除MySQL 8.0 (如果没装过就无视此步)

sudo apt-get purge mysql-server mysql-client
sudo apt-get -y autoremove

2. 修改dpkg的默认版本为MySQL 5.x

wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb

sudo dpkg -i mysql-apt-config_0.8.12-1_all.deb

3. 检查一下是不是默认版本改对了

sudo apt policy mysql-server

如果Candidate:后面是5.x版本,那么就是改好了。

接下来更新一下

sudo apt-get update

4.安装MySQL 5.x

sudo apt-get -y install mysql-server

安装过程如果遇到一堆需要是否的全输入Y就ok

sudo service mysql start

此时应该正常启动mysql,,没有任何错误。

多试着开几次,直到显示。

然后可以试着登陆一下,默认无密码,默认需要sudo权限来登录。

sudo mysql -u root

5.修改默认版本为MySQL 8.x

sudo dpkg -i mysql-apt-config_0.8.12-1_all.deb

sudo apt update

sudo apt policy mysql-server

检查一下Candidate是否为0.8.x

6. 安装MySQL 8.x

sudo apt-get -y install mysql-server

7.修改解释器的目录(wsl的bug)

sudo vim /etc/init.d/mysql

vim可以用任何文本编辑器

找到

. /usr/share/mysql/mysql-helpers

将他改为

. /usr/share/mysql-8.0/mysql-helpers

即可。

8.升级系统数据表为MySQL 8.x

sudo service mysql start

sudo mysql_upgrade -u root -p

成功,芜湖~~

疑难解答

(1)如何重启MySQL

sudo service mysql stop

sudo service mysql start

(2) Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

请使用sudo启动

(3) No directory, logging in with HOME=/ 或一直拒绝访问

修改用户模式

sudo usermode -d /var/lib/mysql/ mysql

不行就再重置UNIX密码

sudo passwd root

然后进入root账户

su root

然后登录

mysql -u root

进去成功了就ok了,可以退出root账户,再用sudo登录,就可以了。

(4) 修改密码

sudo mysqladmin -u root -p password

然后更新密码就好啦

(5) 出现一堆.... 没反应

多等会。

(6) 密码不知道

wsl2 中安装MySQL比较奇怪,安装过程不会让你设置初始密码。一般密码为空,要还不行就如下操作

修改

/etc/mysql/mysql.conf.d/mysqld.cnf

加一句

skip-grant-tables (回头记得删掉)

然后重启MySQL

登录时尝试使用密码,输入空,和不使用密码。两种是两个效果。

(7)不断拒绝访问

给非root用户登录root账号的权限即可

进入mysql

use mysql;

select user,host,plugin from user;

update user set plugin = 'mysql_native_password';

flush privileges;

然后重启MySQL

链接WSL2与WIN

A-Ubuntu环境

首先登进mysql

use mysql;

select host from user where user = 'root';

update user set host = '%' where user = 'root';

flush privileges;

OK大功告成。

B-Windows10 环境

首先要对MySQL的IP段关闭防火墙

再防火墙设置中新建入站规则,设置自定义模式。

再作用域中远程IP地址添加WSL2的虚拟网卡的网关。

可以在WSL2中用输入 ifconfig 查看

对ip和掩码的最后一段做与运算,其他三段照抄ip就行。

后面计算下子网有多大。打开计算器输入掩码最后一段,然后数0的个数,数几个就/几。

此时我的是 172.18.77.144/4

然后狂点下一步直到名称,随便起个名完成。

C-连接

再wsl2中启动mysql服务,然后再windows中cmd中输入

mysql -h 上面的ip -u root -p

然后再输入对应密码,成功登录!

如有错误或者其他问题,欢迎留言询问。

posted @ 2021-03-21 21:02  萧瑟秋风今又是又是今  阅读(3313)  评论(0编辑  收藏  举报