本篇介紹如何在 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