2026年5月20日
2026年5月20日
WordPressの管理者アカウントをデータベース経由で新規作成する方法
はじめに
WordPressの管理画面にアクセスできない状況で、新しい管理者アカウントをデータベースに直接追加する方法を解説します。phpMyAdmin・WP-CLI・wp-config.phpの3つの方法を状況に応じて使い分けてください。
方法1:WP-CLI(最速・推奨)
# 新しい管理者ユーザーを作成
wp user create new_admin admin@example.com \
--role=administrator \
--user_pass='TempPassword123!'
# 作成を確認
wp user get new_admin --fields=ID,user_login,roles
方法2:phpMyAdminでSQLを実行
ステップ1:wp_usersにユーザーを追加
INSERT INTO wp_users
(user_login, user_pass, user_nicename, user_email, user_registered, user_status, display_name)
VALUES
('new_admin',
MD5('TempPassword123!'),
'new_admin',
'admin@example.com',
NOW(),
0,
'New Admin');
ステップ2:ユーザーIDを確認
SELECT ID FROM wp_users WHERE user_login = 'new_admin';
-- 例: ID = 5
ステップ3:wp_usermetaに管理者権限を付与
-- wp_ プレフィックスの場合({ID}は実際のIDに置換)
INSERT INTO wp_usermeta (user_id, meta_key, meta_value)
VALUES
(5, 'wp_capabilities', 'a:1:{s:13:"administrator";b:1;}'),
(5, 'wp_user_level', '10');
方法3:wp-config.phpに一時コードを追加
// wp-config.php の require_once より上に追加
// ※ 使用後すぐに削除すること
add_action('init', function() {
if (get_user_by('login', 'emergency_admin')) return;
$id = wp_create_user('emergency_admin', 'TempPass123!', 'emergency@example.com');
$user = new WP_User($id);
$user->set_role('administrator');
});
サイトに一度アクセスするとユーザーが作成されます。ログイン後すぐにこのコードを削除し、パスワードを変更してください。
テーブルプレフィックスが異なる場合
-- プレフィックスを確認
SHOW TABLES LIKE '%users';
-- 例: mysite_users → プレフィックスは "mysite_"
-- プレフィックスを置換して実行
INSERT INTO mysite_usermeta (user_id, meta_key, meta_value)
VALUES (5, 'mysite_capabilities', 'a:1:{s:13:"administrator";b:1;}');
# WP-CLIでプレフィックスを確認
wp config get table_prefix
ログイン後の必須作業
1. 緊急アカウントのパスワードを強力なものに変更
2. wp-config.phpの一時コードを削除(方法3の場合)
3. 不要になった緊急アカウントを削除
# 緊急アカウントを削除(投稿は既存ユーザーに移管)
wp user delete emergency_admin --reassign=1
注意事項
- MD5パスワードは次回ログイン時にphpassに自動変換されます
- テーブルプレフィックスが
wp_以外の場合はwp_capabilities→{prefix}_capabilitiesに変更 - 本番DBへの直接操作前に必ずバックアップを取ること
まとめ
緊急の管理者作成はWP-CLIの wp user create --role=administrator が最速です。使えない場合はphpMyAdminで wp_users + wp_usermeta の2テーブルにレコードを追加してください。