環境:Ubuntu 16.04 ; Mysql 5.7問題:mysql root登錄密碼 忘記了。。忘記了。。忘。。了
1.登錄MySQL
$ mysql -u root -p
輸入密碼,如果登錄成功下面的就不用看了;如果提示出錯,則我們嘗試啟用安全模式登入MySQL,這樣可以繞過密碼登入,登入后再修改密碼。
2.安全模式登入MySQL
1 $ sudo /etc/init.d/mysql stop 2 3 [sudo] hee 的密碼: 4 [ ok ] Stopping mysql (via systemctl): mysql.service. 5 6 $ sudo /usr/bin/mysqld_safe --skip-grant-tables --skip-networking &
輸入第一行終止MySQL運行,成功,會提示下面兩行;
輸入第四行,成功,沒有任何報錯則可以另外打開一個終端窗口進行下一步操作;
但是一般會報錯,比如提示mysqld_safe Directory ‘/var/run/mysqld’ for UNIX socket file don’t exists
因此我們嘗試輸入以下代碼
1 $ sudo mkdir -p /var/run/mysqld 2 3 $ sudo chown mysql:mysql /var/run/mysqld
最后再次輸入:
1 sudo /usr/bin/mysqld_safe --skip-grant-tables --skip-networking &
到了這里不在提示錯誤,可以打開另一個終端端口了,嘗試無密碼登入MySQL。
1 mysql -u root
到這里應該可以進入MySQL了,繼續操作
1 > use mysql; 2 3 > update user set authentication_string=PASSWORD("這里輸入你要改的密碼") where User='root'; #更改密碼 4 > update user set plugin="mysql_native_password"; #如果沒這一行可能也會報一個錯誤,因此需要運行這一行 5 6 > flush privileges; #更新所有操作權限 7 > quit;
3、使用修改的密碼登入MySQL
經過上面一系列的操作,應該可以正常使用你更改的密碼登入了。
1 > sudo /etc/init.d/mysql stop 2 > sudo /etc/init.d/mysql start # reset mysql 3 4 > mysql -u root -p
第一行先終止數據庫運行,第二行重啟數據庫服務,第三行root用戶登入。
OK 修改成功!
