這裡介紹各種重新設定 WordPress 網站登入密碼的方法。
如果忘記了自己 WordPress 網站的登入密碼,可以透過 Email 的方式自動重新設定,但如果 Email 的方式行不通,也還有許多種其他的解決方式,以下介紹各種重設密碼的方式,請選擇自己比較喜歡的方法來使用。
MySQL/MariaDB 指令重新設定密碼
Step 1
在 Linux 命令列中,將新的密碼轉為 MD5 的雜湊(hash)字串:
echo "my_password" | tr -d 'rn' | md5sum
這裡的 my_password
就是新的密碼,請替換為自己的新密碼,而經過 md5sum
計算之後,會產生類似這樣的雜湊字串:
a865a7e0ddbf35fa6f6a232e0893bea4 -
這一行輸出文字有兩個欄位,第一欄就是我們要的密碼雜湊字串,而第二欄則是檔案名稱(因為這裡是從標準輸入讀取資料的,所以檔名會以 -
表示)。請將這裡第一欄的密碼雜湊字串複製起來,後面會用到。
Step 2
使用 root
管理者帳號(或是有權限寫入 WordPress 資料庫的帳號)登入 MySQL/MariaDB 資料庫:
mysql -u root -p
Step 3
列出所有的資料庫,找出用於儲存 WordPress 網站資料的資料庫:
show databases;
找到自己 WordPress 網站用的資料庫之後,選擇之(這裡我的資料庫名稱為 blog
):
use blog;
Step 4
列出自己的資料表:
show tables;
尋找儲存使用者帳號的資料表,其名稱會以 users
結尾(這裡我的資料表為 wp_users
)。
接著把 ID
、user_login
、user_pass
這幾個欄位輸出來看一下:
SELECT ID, user_login, user_pass from wp_users;
+----+------------+------------------------------------+ | ID | user_login | user_pass | +----+------------+------------------------------------+ | 1 | gtwang | $P$qBpIvOiMyT1pm9vIPAs24tuyHs4KW91 | +----+------------+------------------------------------+
這些就是目前 WordPress 網站上所有的帳號與密碼,請確認要重新設定密碼的帳號 ID,以這個例子來說我要重新設定 gtwang
這個帳號,其 ID 為 1
。
Step 5
將此帳號的密碼欄位設定為之前產生的 MD5 雜湊字串:
UPDATE wp_users SET user_pass="a865a7e0ddbf35fa6f6a232e0893bea4" WHERE ID = 1;
這樣就完成密碼的重設了,接著就可以開啟 WordPress 網頁,以新密碼登入。
以 phpMyAdmin 重新設定密碼
如果您的網頁空間有提供 phpMyAdmin 的 MySQL 管理介面,也可以從 phpMyAdmin 中來修改 WordPress 使用者的密碼,修改原則跟指令的方式差不多。
Step 1
登入自己的 phpMyAdmin 管理介面之後,選擇儲存 WordPress 網站的資料庫,從中尋找使用者帳號的資料表(名稱以 users
結尾的資料表)。
找到使用者資料表之後,從中尋找要重新設定密碼的帳號,接著點選「編輯」。
Step 2
修改 user_pass
這個儲存密碼的欄位,在「函數」的部分要選擇「MD5」,然後在值的部分填入自己設定的新密碼。
Step 3
點選「執行」。
這樣就完成密碼的重新設定了。
透過 FTP 重新設定密碼
Step 1
以 FTP 連線軟體(例如 FileZilla)連線至 WordPress 網站的網頁空間,將目前佈景主題的 functions.php
抓下來,然後在這個 PHP 檔案中加入一行:
wp_set_password('my_password', 1);
wp_set_password
第一個參數是新的密碼,而第二個參數則是使用者的 ID。
修改好之後,再將這個檔案放回原來的地方,把舊的檔案蓋掉。
Step 2
以新密碼登入 WordPress 網站。
Step 3
復原 functions.php
,移除剛剛加上去的 wp_set_password
。
使用 WP-CLI 重新設定密碼
WP-CLI 是一個指令介面的 WordPress 管理工具,我們可以用 WP-CLI 來重新設定使用者的密碼。
列出所有 WordPress 網站中的使用者帳號:
wp user list
+----+------------+--------------+------------------------+---------------------+---------------+ | ID | user_login | display_name | user_email | user_registered | roles | +----+------------+--------------+------------------------+---------------------+---------------+ | 1 | gtwang | G. T. Wang | guozhao.wang@gmail.com | 2015-03-05 18:21:38 | administrator | +----+------------+--------------+------------------------+---------------------+---------------+
重新設定使用者密碼:
wp user update 1 --user_pass="my_password"
這是個指令會將 ID 為 1
的使用者密碼改為 my_password
。
參考資料:WordPress、WordPress Developer Resources、Tecmint