[wp-cli]たった2ステップでWordPress管理画面のパスワードをリセットする


WordPress管理画面のIDやパスワードを忘れた場合、何もできない漂流ブログを生み出してしまうことになります。しかし、そんな時でもsshやコンソールからシェルログインできてwp-cliさえインストールされていれば、たった2ステップでパスワードリセットすることができます。MySQLのIDとパスワードさえ忘れたってOKです(いやそこはダメだろう)。おまけに、リセットメールを飛ばす必要もありません。

※ 2015/01/11 09:00 追記
こちらにもっと簡単な手順を追加しました。

■ 管理者権限のあるユーザーを検索する

あなたがログインIDすら忘れてしまったという、ちょっとおっちょこちょいじゃ済まされないレベルのドジっ子だとしましょう。まずは落ち着いて、管理者権限のあるユーザー名を検索することにします。

$ wp db query "select * from wp_usermeta;" | egrep '(umeta_id|nickname|wp_capabilities)'
umeta_id	user_id	meta_key	meta_value
1	1	nickname	oresama
10	1	wp_capabilities	a:1:{s:13:"administrator";b:1;}

nicknameが「oresama」は、administratorすなわち管理者権限のユーザーであることがわかります。ちょっと見づらくて申し訳ないのですが、上記コマンド出力結果の2列目「user_id」が同じ数字で2行出力されますので、meta_keyがnicknameの行とwp_capabilitiesの行の関連付けがわかるかと思います。wp_capabilitiesの値が「a:1:{s:13:"administrator";b:1;}」となっているのは、PHPの配列がシリアライズされて格納されているからです。 (参考: http://nishy.blog.fc2.com/blog-entry-3.html )

ということで、oresamaユーザーのパスワードをリセットすることにしましょう。

■ wp-cliを使って管理者ユーザーのパスワードをリセットする

管理者ユーザー「oresama」のパスワードをリセットします。まずは現在のパスワードを表示しますが、これは暗号化されているので、前後比較のために表示します。

$ wp db query "select user_login,user_pass from wp_users where user_login='oresama';"
+------------+------------------------------------+
| user_login | user_pass                          |
+------------+------------------------------------+
| oresama    | $P$B69XYPu5ZInib4S3e7WKJMkoJgT.tL/ |
+------------+------------------------------------+

次に、新しいパスワードを「PASSWORD_IS_HERE」に決めてoresamaユーザーのパスワードをリセットします。

$ wp db query "UPDATE wp_users SET user_pass = MD5('PASSWORD_IS_HERE') where user_login='oresama';"

再度確認してみましょう。user_pass列の文字列が変わったことがわかります。

$ wp db query "select user_login,user_pass from wp_users;"
+------------+----------------------------------+
| user_login | user_pass                        |
+------------+----------------------------------+
| oresama    | 8c89f1cd9019b847e346543e233629ed |
+------------+----------------------------------+

この後、ブラウザからWordPressの管理画面を開き、ユーザー名「oresama」パスワード「PASSWORD_IS_HERE」でログインできればOKです。ね、簡単でしょう?

[amazonjs asin="4774142948" locale="JP" title="エキスパートのためのMySQL運用+管理トラブルシューティングガイド"]

[amazonjs asin="4883379248" locale="JP" title="WordPressレッスンブック HTML5&CSS準拠"]