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
然后再输入对应密码,成功登录!
如有错误或者其他问题,欢迎留言询问。