疑問
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段階認証プラグインが動かなくなった場合は、プラグインの影響がない新規ユーザーの作成が必要です。