Table of Contents
環境
Ubuntu 24.04
MySQL 8.0.40
操作方法
將 MySQL 重新啟動為無需密碼的維護狀態
首先,我們得修改 MySQL 系統設定檔
檔案位置在 /etc/mysql/my.cnf,在 [mysqld] 的段落中,加入以下資料
[mysqld]
skip-grant-tables
然後,重新啟動 mysql
sudo systemctl restart mysql
將管理員 root 帳號設為無需密碼
此時,MySQL 伺服器會以怱略權限認證的方式啟動,我們可以使用 mysql 指令,以不認證的方式,直接本機登入 MySQL 伺服器。
mysql
然後在 MySQL 客戶端,輸入以下指令
use mysql;
update user set authentication_string = '' where user = 'root';
FLUSH PRIVILEGES;
EXIT
此時,管理員帳號 root 會被我們重新設定為無需密碼。
將 MySQL 伺服器,切換為一般模式啟動
修改 /etc/mysql/my.cnf,將原來 的 skip-grant-tables
加上註解
[mysqld]
# skip-grant-tables
然後重新啟重 MySQL 伺服器
sudo systemctl restart mysql
修改 root 密碼
正常啟動 MySQL 後,在 MySQL 客戶端,以 root 進行無密碼登入
mysql -u root
登入後,使用以下指令,設定正式的 root 密碼了
use mysql;
ALTER USER root@localhost IDENTIFIED WITH caching_sha2_password BY '你的密碼';
FLUSH PRIVILEGES;
EXIT
參考資料
How can I reset my MySQL root password in MySQL 8.0.36 on Red Hat 8 if ‘mysqld_safe’ is gone?
Comments