1. 程式人生 > >Ubuntu下忘記MySQL密碼,從安全模式進入的解決方法

Ubuntu下忘記MySQL密碼,從安全模式進入的解決方法

Ubuntu 16.0 系統下忘記了 MySQL 的登入密碼,現記錄從安全模式進入資料庫的解決方法,供參考。

文章來源:ubuntu 16.04系統下解決MySQL 5.7版本的root使用者重置密碼問題

這裡只是忘記 MySQL 的密碼,不涉及安裝問題,故不檢查安裝是否成功。


重置開始

mysql -u root -p

由於忘記密碼,這裡提示登陸失敗,所以從安全模式進入,然後再重置密碼。

sudo /etc/init.d/mysql stop
-------------------------------------
[sudo] 密碼:
[ ok ] Stopping mysql (via systemctl): mysql.service.
 
$ sudo /usr/bin/mysqld_safe

輸入第一行,結束 MySQL 執行,成功,會提示下面兩行;
輸入第四行,成功。沒有任何報錯則可以另外開啟一個終端視窗進行下一步操作;
但是一般會報錯,比如提示 mysqld_safe Directory ‘/var/run/mysqld’ for UNIX socket file don’t exists.

不要慌!輸入以下程式碼:

sudo mkdir -p /var/run/mysqld
 
sudo chown mysql:mysql /var/run/mysqld

然後再次輸入:

sudo /usr/bin/mysqld_safe

此時便成功進入了安全模式,重新進入 MySQL,無需密碼。

mysql -u root

然後按如下步驟重置密碼:

> use mysql;
 
> update user set authentication_string = PASSWORD("這裡輸入新密碼") where User='root';  #更改密碼
> update user set plugin="mysql_native_password";  # 如果沒這一行可能也會報一個錯誤,因此需要執行這一行
 
> flush privileges; #更新所有操作許可權
> quit;

重新用新密碼進入 MySQL:

> sudo /etc/init.d/mysql stop
> sudo /etc/init.d/mysql start  # 重啟 mysql
 
> mysql -u root -p

重置完畢!