この日記は https://yapud.hatenablog.com/ に引っ越し中
2019-03-19
_ [Software] Wordpress 管理画面に入れなくなってしまった時の SQL
Wordpress あるあるなんですけどパスワード忘れて管理画面に入れなくなったとか、WP All Import で環境ごっそり譲り受けたら管理ユーザが何なのかわからないとか、そんなこんなでとにかく管理ユーザを管理画面以外から作りたいということがあるでしょう。あるんですよ。
そんなときの SQL 文。あ、OSにSSHなどで接続できてることが前提ね。
DBに接続する
まずはDBに接続します。ユーザ名やDB名は自分の環境に合った名前でアクセスしよう。
mysql -u wordpress -p -D wp_sitename
なに?前任者が資料を残してない?しらんがな。
そんなときは wp-config.php を見よう。 wp-config.php がどこにあるかわからない? find コマンドで探せば出てこないかな。
find /var -name wp-config.php
さてその wp-config.php の中に、DB名、ユーザ名、パスワードが書いてあるからそれをメモるんだ。場所はここだ。
define( 'DB_NAME', '~~~' );
define( 'DB_USER', '~~~' );
define( 'DB_PASSWORD', '~~~' );
長かったわ-やっと辿り着いたわー。さて mysql コマンドで DBに入ったね。
管理ユーザをSQLで作成する
以下はユーザ名 admin、メールアドレス admin_name@example.com、パスワード replace_password_string で管理ユーザを作成する例。そこら辺の文字列は自分の都合の良いように書き換えよう。
INSERT INTO wp_users (user_login, user_nicename, display_name,user_pass , user_email , user_registered ) VALUES
('admin', 'admin', 'admin', md5('replace_password_string'), 'admin_name@example.com',current_date() );
INSERT INTO wp_usermeta (user_id, meta_key, meta_value) VALUES
((SELECT ID FROM wp_users WHERE user_login = 'admin'),'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}'),
((SELECT ID FROM wp_users WHERE user_login = 'admin'),'wp_user_level', '10');
管理ユーザのパスワードをSQLで変更する
管理ユーザは存在してるのだけどパスワードがわからないので変更したい場合。例えば対象の管理ユーザが admin の場合。
UPDATE wp_users SET user_pass = md5('replace_password_string') WHERE user_login = 'admin';
こんな感じで、SQLでもどうにかできる話でした。
前 | 2019年 3月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |