...pudding - diary


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
Twitter : @moriya_jp