本文另外刊登於我的部落格: Hankz Blog
此文章記錄在Linux上 MySQL重製密碼及修改密碼方式
使用指令找到MySQL讀取的my.cnf檔案路徑:
mysql --help | grep 'Default options' -A 1
編輯my.cnf
vim [檔案路徑]
在[mysqld]標籤底下加入 skip-grant-tables
(註1)
使用指令重啟資料庫
service mysql restart
登入MySQL(直接輸入Enter不需要打密碼),並使用以下指令(註2)
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