お問い合わせはコチラから

MySQLでwordpressの管理者ユーザーを作成する

WordPressのログインパスワードを忘れた時に、MySQLからパスワードを変更するのは結構簡単です。

しかし、管理者権限のユーザーを新規に作ろうとすると、phpMyAdminだと設定項目が多くてチョット嫌になるレベルです。

そこで、SQLコマンドで一気にやってしまうというのがこの記事の内容です。

新規ユーザーの追加コマンド

VLUES()の中の‘your username’‘your password’は最低でも書き換えないといけません。他は後から変更しても良いでしょう。

環境によって、接頭辞が異なる場合がありますので、実際のDBのテーブルの名前は事前に確認した方が良いです。

環境による違いに注意!
  • wp_usersがwp1_usersなど違うことがあります。
INSERT INTO `wp_users` (`user_login`, `user_pass`, `user_nicename`, `user_email`, `user_status`) VALUES ('your username', MD5('your password'), 'your firstname & your lastname', 'your email', '0');

新規ユーザーに管理者権限を与えるコマンド

最後に追加されたユーザーの権限を管理者権限に変更するコマンドになっています。

このコマンドを先に実行してしまうと、別のユーザーの権限が変更されてしまいますので注意しましょう。

環境によって、接頭辞が異なる場合がありますので、実際のDBのテーブルの名前は事前に確認した方が良いです。

環境による違いに注意!
  • wp_usersがwp1_usersなど違うことがあります。
  • wp_capabilitiesがwp1_capabilitiesなどと違うことがあります。
  • wp_user_levelがwp1_user_levelなどと違うことがあります。

wp_capabilitiesとwp_user_levelの名前が間違っていると、ログインした後にダッシュボードが表示されません。

INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, (Select max(id) FROM wp_users), 'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');

INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, (Select max(id) FROM wp_users), 'wp_user_level', '10');

まとめ

管理者ユーザーを追加する方法は、検索すると出てくるのですが、そのままやってもうまくいかないことが多いです。

その理由は、DBのテーブル名がサイトごとに異なるからです。たまたま検索したサイトと同じ場合は上手くいくのですが、そうじゃない場合はユーザー追加できても管理者権限にならないので、ダッシュボードが表示されなくなります。

そこだけ注意すれば、どの方法でもうまく追加できる、逆に言えばどの方法でもそこがネックになるのですが、MySQLのクエリを使った方がイライラしませんという話でした。

タイトルとURLをコピーしました