MySQL忘記密碼該怎麼辦? 應該如何重置?

忘記密碼經常發生,但是如果你忘記的是最高權限的密碼,是比較麻煩的事情。在維運MySQL/MariaDB的過程中,如果忘記密碼,有幾種情況可以幫你找回來。

使用MySQL/MariaDB有兩大類使用情境 :

(1) 你的資料庫是跟著網站一起代管,例如000Webhost、Bluehost之類的。

這類情況有三個方式取得或是重置密碼,敘述如下 :

第一種方式 : 在你的網站程式中,會有設定root的帳號密碼,找到設定檔即可取回帳號密碼。

不過當然你要記得代管登入的帳號密碼,才有辦法這麼做。

如下圖 : 在WordPress的WP-config.php會記載帳號密碼。


上圖的DB_USER及DB_PASSWORD就以明碼寫在WP-config.php檔案上。不同類型的網站會有不同的設定檔,大多都會紀錄帳號密碼。但是如果不是明碼,就無法用這個方式取回帳號密碼。

第二種方式 :  在代管系統中會有直接進入資料庫的介面,可以透過代管介面去更改密碼。

不過當然也是你要記得代管登入的帳號密碼,才有辦法這麼做。

如下圖 : 以000Webhost為例,可以點選Database Manager。


進入Database Manager之後,大多就可以如下圖去更改密碼 : 





第三種方式 : 在代管系統中以PhpMyAdmin去更改密碼。

當然也是你要記得代管登入的帳號密碼,才有辦法這麼做。

如下圖 : 以000Webhost為例,可以點選PhpMyAdmin。


進入PhpMyAdmin後,找到紀錄帳密的資料表,這個例子是wp-users表單,如下圖 :


在密碼欄位的函式選擇MD5,然後值的欄位填入你要的密碼 (明碼),然後按下執行。

如此密碼就會更改了。

(2) 你的資料庫是在自己機器架設的,例如以XAMPP。

因為是自己架設的資料庫,因此如果已經有架設類似WordPress網站,一樣可以如上去尋找設定檔案來尋回帳密。

如果沒有的話,可以依照以下方式 (以XAMPP為例) : 

步驟一 : 先停止MySQL服務。 

步驟二 : 修改My.ini 

按下XAMPP控制面板上的config,編輯my.ini 把 key_buffer 改為 key_buffer_size (如果已經是就不用改) ,在[mysqld]下加上一行 skip-grant-tables 

步驟三 : 啟動MySQL服務。 

步驟四 : 執行下列指令 

mysql -u root FLUSH PRIVILEGES; 

步驟五 : 再來要查一下資料庫的版本。

執行下列指令來顯示版本 :

mysqld -v 

或是

mysql --version

步驟六 : 更新密碼

如果你的資料庫是 MySQL 5.7.6 或是 MariaDB 10.1.20 更新的版本,則使用以下方式 

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; 

如果你的資料庫是 MySQL 5.7.5 或是 MariaDB 10.1.20 更舊的版本,則使用以下方式 

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password'); 

步驟七 : 最後修改 My.ini 並重新啟動MySQL服務。 

把 My.ini 的 skip-grant-tables 這行刪除並儲存, 重新啟動MySQL服務即可。


(3) 以MySQL/MariaDB的Installer安裝在自己的電腦

如果是安裝MariaDB在Windows,請依照以下方式 :

步驟一 : 先停止MySQL服務。 (例如從電腦管理中找到MySQL/MariaDB服務,然後停止)

步驟二 : 建立一個文字檔,包含以下指令。

ALTER USER 'root'@'localhost' IDENTIFIED BY '新的密碼'; 

步驟三 : 

執行指令 mysqld --init-file=C:\\path\\to\\file.txt

如果你儲存在C:\test\mariadb.txt,就執行

mysqld --init-file=C:\test\mariadb.txt

執行後有可能沒有反應,等待一下子,關掉指令視窗,再啟動MySQL服務。

步驟四 :  以你新設密碼進入MySQL。

參考來源
https://stackoverflow.com/questions/23288744/how-to-reset-password-in-mariadb-on-windows

張貼留言

0 留言