WordPressの管理画面にログインできない【パスワードを忘れた場合】

2021年10月23日

当サイトはアフィリエイト広告を利用しています。

疑問

WordPress(ワードプレス)でパスワードを忘れてログインできなくなった・・・どうすればいい?

ユーザー名やパスワードを忘れただけなら、該当カラムのアップデートで大丈夫です。

もし、2段階認証プラグインが動かなくてログインできなくなった場合は、プラグインの影響がない新規ユーザーを作った方がいいです。

WordPress管理画面にログインできない時の対処方法

DBの知識があると分かりやすいです。

DBを直接いじって「アップデートする方法」と「新しいユーザーとパスワードを作成する方法」の2つを紹介します。

ユーザー名やパスワードをアップデートする方法

ユーザー名やパスワードを忘れただけならアップデートで対応しましょう。

PHPMyAdminなどで、下記のテーブルのユーザー名とパスワードを更新します。

変更するテーブルは1つです。

変更するテーブル

  • wp_users

下記のSQL文を実行します。

UPDATE wp_users
SET user_login =  'ユーザー名',
user_pass = 'パスワード',
user_nicename =  'ユーザー名'
WHERE ID=ユーザーID;

上のSQL文の赤文字部分は変更が必要

  • 【wp_users】テーブル名(自分のテーブルに合わせて変更)
  • 【ユーザーID】変更したいカラムのユーザーIDを入力(Select文で事前に確認)
  • 【ユーザー名】任意の文字列に変更(2か所とも同じもの)
  • 【パスワード】MD5で変換したパスワード

パスワードは、ツール( MD5変換)を使って、暗号化したものを入力します。

ユーザー名やパスワードを忘れただけならこれで完了です。

ユーザーIDはなにかしらのデータでひっかけて事前にSelectして確認しておきましょう。

//user_emailなどが指定できます。
select * from wp_users LIMIT 0, 10

ユーザー名やパスワードを作成する方法

2段階認証プラグインなどが効いていて、ログインができない場合は、プラグインの影響を受けない新しい管理者の作成が必要です。

DBに新しい管理者データをINSERTして、ログインできるようにします。

データを追加するテーブルは下記の2つです。

管理者を追加するテーブル

  • wp_users
  • wp_usermeta

下記のSQL文で、wp_usersにデータを作成します。

INSERT INTO wp_users (ID, user_login, user_pass, user_nicename, user_email, user_url, user_registered, user_activation_key, user_status, display_name) VALUES
(ユーザーID,
 'ユーザー名',
 'パスワード',
 'ユーザー名',
 'メールアドレス',
 '',
 '2020-02-28 09:01:38',
 '',
 0,
 'アドミンテストユーザー');

上のSQL文の赤文字部分は変更が必要

  • 【wp_users】テーブル名(自分のテーブルに合わせて変更)
  • 【ユーザーID】テーブルで一番最後の連番数字に+1する
  • 【ユーザー名】ユーザー名(2か所とも同じもの)
  • 【パスワード】MD5で変換したパスワード
  • 【メールアドレス】メールアドレス

【パスワード】は、前述のツールで変換したものを入力します。

ユーザーIDで、一番最後の連番数字を表示させるには下記のSQLを使います。

SELECT MAX(ID) FROM wp_users

もう一つ、wp_usermetaにデータを作成する時のSQL文がこちら。

INSERT INTO wp_usermeta (umeta_id, user_id, meta_key, meta_value) VALUES
(連番, ユーザーID, 'nickname', 'アドミンテストユーザー'),
(連番, ユーザーID, 'first_name', 'アドミン'),
(連番, ユーザーID, 'last_name', 'テストユーザー'),
(連番, ユーザーID, 'description', ''),
(連番, ユーザーID, 'rich_editing', 'true'),
(連番, ユーザーID, 'syntax_highlighting', 'true'),
(連番, ユーザーID, 'comment_shortcuts', 'false'),
(連番, ユーザーID, 'admin_color', 'fresh'),
(連番, ユーザーID, 'use_ssl', '0'),
(連番, ユーザーID, 'show_admin_bar_front', 'true'),
(連番, ユーザーID, 'locale', ''),
(連番, ユーザーID, 'wp_capabilities', 'a:1:{s:13:"administrator";b:1;}'),
(連番, ユーザーID, 'wp_user_level', '10'),
(連番, ユーザーID, 'dismissed_wp_pointers', 'text_widget_custom_html'),
(連番, ユーザーID, 'show_welcome_panel', '1'),
(連番, ユーザーID, 'wp_dashboard_quick_press_last_post_id', '1090'),
(連番, ユーザーID, 'community-events-location', 'a:1:{s:2:"ip";s:10:"60.90.59.0";}'),
(連番, ユーザーID, 'nav_menu_recently_edited', '2'),
(連番, ユーザーID, 'managenav-menuscolumnshidden', 'a:5:{i:0;s:11:"link-target";i:1;s:11:"css-classes";i:2;s:3:"xfn";i:3;s:11:"description";i:4;s:15:"title-attribute";}'),
(連番, ユーザーID, 'metaboxhidden_nav-menus', 'a:1:{i:0;s:12:"add-post_tag";}');

上のSQL文の赤文字部分は変更が必要

  • 【wp_usermeta】テーブル名(自分のテーブルに合わせて変更)
  • 【連番】テーブルで一番最後の連番数字に+1していく(例:10,11,12,13・・・)
  • 【ユーザーID】上のテーブルと同じユーザーID
  • 【wp_capabilities】テーブル名に合わせて修正
  • 【wp_user_level】テーブル名に合わせて修正
  • 【wp_dashboard_quick_press_last_post_id】テーブル名に合わせて修正

連番で、一番最後の連番数字を表示させるには下記のSQLを使います。

SELECT MAX(umeta_id) FROM wp_usermeta

下記の3項目は、Wordpressを作成した時にテーブルに接頭語を付けていれば、その追加が必要です。

  • wp_capabilities
  • wp_user_level
  • wp_dashboard_quick_press_last_post_id

接頭語を付けた場合は、下記のようになります。

※接頭語のつく位置に注意してください。

接頭語を付けた場合

  • wp_xxxxxcapabilities
  • wp_xxxxxuser_level
  • wp_xxxxxdashboard_quick_press_last_post_id

【まとめ】Wordpress管理画面にログインできない時の対処方法

WordPress管理画面にログインできなくなった場合でも、DBにアクセスできれば対処できます。

ユーザー名やパスワードを忘れただけなら、該当カラムのアップデートで対応。

2段階認証プラグインが動かなくなった場合は、プラグインの影響がない新規ユーザーの作成が必要です。

-ワードプレス
-