Linux

CentOS Linux 的 MySQL/MariaDB 資料庫忘記密碼重新設定教學

本篇介紹如何在 CentOS Linux 中重新設定 MySQL/MariaDB 資料庫的 root 管理者密碼。

MySQL/MariaDB 資料庫的 root 管理者密碼跟 Linux 系統的 root 密碼是分開的,通常因為安全性,也不會設成一樣的密碼,由於 MySQL/MariaDB 的 root 密碼不常用,時間一久就忘記了。


以下介紹如在 CentOS Linux 中以以安全模式啟動 MySQL/MariaDB 資料庫,然後重新設定資料庫的 root 管理者密碼。
Step 1
停止系統的 MariaDB(或 MySQL)服務。
# 停止 MariaDB 服務
sudo systemctl stop mariadb

# 停止 MySQL 服務
sudo systemctl stop mysql

Step 2
在啟動 MySQL 或 MariaDB 時,若跳過 trant table 的話,就可以在不用密碼的情況下以資料庫 root 權限存取資料庫裡面的資料,這樣我們就可以重設密碼。

不過以這種模式啟動資料庫會有風險,所以建議關閉網路功能(networking),以防止外部的使用者連入。

# 跳過 trant table 與 networking 啟動 MySQL/MariaDB
sudo mysqld_safe --skip-grant-tables --skip-networking &

Step 3
使用 root 帳號連線至 MySQL/MariaDB 資料庫:

# 以 root 連線至 MySQL/MariaDB 資料庫
mysql -u root

Step 4
讓資料庫載入 grant tables:

-- 載入 grant tables
FLUSH PRIVILEGES;

Step 5
變更 root 密碼:

-- 重設 root 密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

若是 MySQL 5.7.5 或 MariaDB 10.1.20 以前的版本,則要改用舊的指令:

-- 重設 root 密碼(舊版指令)
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');

更改完成後,按下 Ctrl + d(或執行 exit 指令)離開。

Step 6
停止剛剛手動啟動的 MariaDB(或 MySQL)資料庫。

# 停止 MariaDB
sudo kill `cat /var/run/mariadb/mariadb.pid`

# 停止 MySQL
sudo kill `cat /var/run/mysqld/mysqld.pid`

Step 7
啟動系統的 MariaDB(或 MySQL)服務。

# 啟動 MariaDB 服務
sudo systemctl start mariadb

# 啟動 MySQL 服務
sudo systemctl start mysql

Step 8
使用 root 與新密碼進入 MySQL/MariaDB 資料庫。

# 使用新密碼進入資料庫
mysql -u root -p

參考資料:DigitalOcean

G. T. Wang

個人使用 Linux 經驗長達十餘年,樂於分享各種自由軟體技術與實作文章。

Share
Published by
G. T. Wang
標籤: MySQL/MariaDB

Recent Posts

光陽 KYMCO GP 125 機車接電發動、更換電瓶記錄

本篇記錄我的光陽 KYMCO ...

1 年 ago

[開箱] YubiKey 5C NFC 實體金鑰

本篇是 YubiKey 5C ...

2 年 ago

[DIY] 自製竹火把

本篇記錄我拿竹子加上過期的苦茶...

2 年 ago