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
然后再輸入對應密碼,成功登錄!
如有錯誤或者其他問題,歡迎留言詢問。