一、安裝
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 ?