ウェブサイト検索

データベースでWordPressのパスワードを手動でリセットする方法


WordPressインスタンスからロックアウトされた場合は、MySQLデータベースにアクセスできるのであれば、パスワードを保存するために使用されるテーブルを手動で編集することによって、パスワードをリセットすることができます。

MySQLからパスワードをリセットする

WordPressはPHPで動作し、MySQLを使用して投稿、構成、その他すべてのデータを保存します。これにはパスワードも含まれます。WordPressはPHPass PHPライブラリを使用してパスワードを保存します(ただし、プラグインを使用してこれを変更できます)。しかし、後方互換性のため、MD5ハッシュも受け入れられます。MD5ハッシュは生成が簡単で(確実に安全ではありません)、現在のパスワードを新しいMD5ハッシュに手動で置き換えることができます。

これらの手順を実行するにはMySQLにアクセスする必要があります。サーバーにコマンドラインアクセスがある場合は、次のようにMySQLにログインできます:

mysql -u root -p

そして、WordPressデータベースを選択します(名前は通常wp-config.phpに定義されています;そうでない場合は、show databasesコマンドを使用できます):

select database1_wp123

コマンドラインアクセスがない場合(共有ホスティングの場合など)、phpMyAdminがインストールされているかもしれません。その場合、SSHアクセスなしで同じコマンドを実行するために、そのウェブインターフェースを使用できます。

以下のコマンドを入力してください。'new_password'を設定したいパスワードに、'admin'を編集しているアカウントのユーザー名に置き換えてください(そのユーザー名が実際に'admin'である可能性もあります)。

UPDATE `wp_users` SET `user_pass` = MD5( 'new_password' ) WHERE `wp_users`.`user_login` = "admin";

あなたのテーブルは別の名前になっているかもしれません。その場合は、show tablesコマンドを使用してすべてのテーブルを一覧表示できます。

Control+Dを使ってMySQLを終了し、パスワード変更が成功したかどうかを確認するためにログインを試みてください。

再度ログインすると、あなたのパスワードは新しく作成されたMD5ハッシュと一致し、WordPressはあなたをログインさせるはずです。WordPressはまた、デフォルトのハッシュアルゴリズムを使用してパスワードを再ハッシュし、データベースを適切に更新します。

MySQLへのアクセスがない場合

FTPアクセスがあり、Wordpressのファイルを変更する能力がある場合、この方法でパスワードをリセットできます。アクティブなテーマのファイル(wp-content/themes/theme-name/の下)にfunctions.phpというファイルが存在するはずです。このファイルをダウンロードし、<?phpの後に以下の行を追加してください。

wp_set_password( 'password', 1 );

これは、ID "1" のユーザーのパスワードをリセットします。これは毎回ページを読み込むたびにリセットされるため、アクセスを再取得できるようになったらこれを削除することをお勧めします。

メールリンクでリセット

これには、Postfixのようなコマンドラインメールエージェントが設定され、動作している必要があります。さもなければ、WordPressはメールを送信できません。

WordPressのログインページの下部には、メールパスワードリセットをトリガーするリンクがあります。これをクリックし、メールアドレスを入力して、あなたに送られたリンクを使用してパスワードをリセットしてください。

この方法を使って他のユーザーのパスワードリセットをトリガーすることもできます。代わりに彼らのメールアドレスを入力するだけで、彼ら自身のパスワードをリセットするためのリンクが送信されます。

関連記事: