此文章同步刊登於我的部落格
如果MySQL忘記密碼,可以使用修改cnf檔案免去登入驗證,再進入MySQL重新設定密碼的方式,找回密碼,另外還附上有一般修改密碼的方式。
重置密碼
- 使用指令找到MySQL讀取的my.cnf檔案路徑:
mysql --help | grep 'Default options' -A 1

- 編輯my.cnf
vim <檔案路徑>
在[mysqld]標籤底下加入skip-grant-tables

- 使用指令重啟資料庫
service mysql restart
- 登入MySQL(直接輸入Enter不需要打密碼),並使用以下指令
use mysql;
update user set authentication_string = '' where user = 'root';
FLUSH PRIVILEGES;
EXIT - 重新編輯my.cnf,並將剛剛加入的
skip-grant-tables
移除 - 再次重啟資料庫
- 即可使用空字串作為密碼進行登入
修改密碼
修改密碼相當簡單,使用有權限的帳號登入MySQL後,使用以下指令:
use mysql;
SELECT * FROM user WHERE user LIKE 'root%' \G;
ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY 'newPassword';
FLUSH PRIVILEGES;
EXIT
環境:
- Ubuntu 16.04.6 LTS
- MySQL 5.7.33