MySQLコマンドプロンプトでWordPress管理者パスワードをリセットする方法


管理者、編集者、作成者、寄稿者、購読者など、次のいずれかの機能を持つ WordPress ユーザーが、ログイン情報、特にパスワードを忘れた場合があります。

ある[ WordPress のパスワードは、 "パスワードを失った" WordPressのログインフォームから簡単に変更できます。ただし、WordPressアカウントに自分の電子メールアドレスにアクセスする方法がない場合、このメカニズムを使用してパスワードを変更することは不可能な場合があります。そのような場合、WordPressアカウントパスワードを更新する仕事はMySQLデータベースデーモンへの完全な特権を持つシステム管理者によってのみ管理することができます。

このガイドでは、LinuxでMySQLコマンドラインを介してWordPressアカウントのパスワードをリセットする方法を紹介します。

MySQL/MariaDB データベースサービスにログインする前に、まず下記のコマンドを発行して、アカウントに割り当てられる新しいパスワードの MD5ハッシュバージョンを作成します。

この例で使用されている「 newpass 」という文字列を、自分の強力なパスワードに置き換えます。後でMySQLユーザーパスワードフィールドにハッシュを貼り付けるために、ファイルにパスワード MD5 ハッシュをコピーします。

# echo -n "newpass" | md5sum

新しいパスワードのMD5ハッシュを生成したら、root権限でMySQLデータベースにログインし、以下のコマンドを発行してWordPressデータベースを識別して選択します。この場合、WordPressデータベースは「 wordpress 」という名前です。

# mysql -u root -p
MariaDB [(none)]> show databases;
MariaDB [(none)]> use wordpress;

次に、以下のコマンドを実行してWordPressユーザーアカウントを保存する責任を負うテーブルを特定します。通常、すべてのユーザー情報を格納するテーブルは wp_users です。

ユーザー名IDの値は、パスワードをさらに更新するために使用されます。

MariaDB [(none)]> show tables;
MariaDB [(none)]> SELECT ID, user_login, user_pass FROM wp_users;

パスワードを変更する必要があるユーザーの ID を正しく識別したら、次のコマンドを発行してパスワードを更新します。ユーザー ID とパスワード MD5 ハッシュを適宜置き換えます。

この場合、ユーザーIDは 1 、新しいパスワードハッシュは e6053eb8d35e02ae40beeeacef203c1a です。

MariaDB [(none)]> UPDATE wp_users SET user_pass= "e6053eb8d35e02ae40beeeacef203c1a" WHERE ID = 1;

すでに MD5 にハッシュされたパスワードを持っていない場合は、以下の例に示すように、パスワードをテキストで書いて MySQL UPDATE コマンドを実行できます。

この場合は、 MySQL MD5()関数を使用してパスワード文字列のMD5ハッシュを計算します。

MariaDB [(none)]> UPDATE wp_users SET user_pass = MD5('the_new_password') WHERE ID=1;

パスワードが更新されたら、このユーザーデータベース情報を取得するために、パスワードを変更したユーザーのIDを wp_users に照会します。

MariaDB [(none)]> SELECT ID, user_login, user_pass FROM wp_users WHERE ID = 1;

それで全部です!これで、自分のパスワードが更新され、新しいパスワードでWordPressにログインできるはずであることをユーザーに知らせます。