wsl,win10子系統Ubuntu,安裝mysql過程及坑

一、安裝

sudo apt-get install mysql-server

二、啓動服務

注意:先停止windows的mysql服務。
因爲子系統與windows共用端口,有可能出現因爲端口占用導致服務啓動失敗

sudo service mysql start

報錯:

 * Starting MySQL database server mysqld
No directory, logging in with HOME=/

這個是由於mysql日誌輸出的目錄沒有權限導致的。

解決方法:

# 停止mysql服務 
sudo service mysql stop

# 修改權限 
sudo usermod -d /var/lib/mysql/ mysql

# 重啓mysql服務
sudo service mysql start

三、登錄

 mysql -u root -p

報錯:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

因爲安裝的過程中沒讓設置密碼,可能密碼爲空,但無論如何都進不去mysql。

解決方法:

step1:

輸入

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

進入到這個配置文件,然後在這個配置文件中的[mysqld]這一塊的最後加入

skip-grant-tables

在這裏插入圖片描述
然後保存退出: ctrl+O,回車,再ctrl+X

作用:就是讓你可以不用密碼登錄進去mysql。

再重新啓動mysql:

service mysql restart

報錯:

su: Authentication failure

解決方法:

先進入到root用戶:

 su root

然後在重新啓動即可。

step2:

在終端上輸入

mysql -u root -p

遇見輸入密碼的提示直接回車即可,進入mysql後,分別執行下面三句話:

use mysql;   # 回車
update user set authentication_string=password("你的密碼") where user="root";  # 回車
flush privileges;  # 回車

在這裏插入圖片描述
然後退出mysql:

quit

step3:

重新進入到mysqld.cnf文件中去把剛開始加的 skip-grant-tables 這條語句給註釋掉:

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

在這裏插入圖片描述
再返回終端輸入

mysql -u root -p

沒報錯即完成。下面就不用看了。

step4:

報錯:

ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded

解決方法:

把註釋掉的那條語句重新生效(即刪除#符號)

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

重啓:

service mysql restart

再重新進入mysql中:

mysql -u root -p

進去後:

use mysql;

select user,plugin from user;

在這裏插入圖片描述
可見錯誤原因是因爲plugin root的字段是auth_socket,那我們改掉它爲下面的mysql_native_password即可:

update user set authentication_string=password("你的密碼"),plugin='mysql_native_password' where user='root';

回車執行。

再查看一下即可發現更改成功:
在這裏插入圖片描述
退出:

quit

再執行一次step3即可。


以上的4個step參考自:https://www.cnblogs.com/cpl9412290130/p/9583868.html ?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章