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テーブルにレコードを追加してください。

お気軽にご相談ください

お見積りへ お問い合わせへ