WordPress のログインパスワードを忘れた場合、ログイン画面の「パスワードをお忘れですか?」->「ユーザー名またはメールアドレスを入力してください。新しいパスワードを作成するためのリンクをメールでお送りします。」より登録したメールアドレスにパスワードの再設定リクエストを送ることが出来るが、メールアドレスが使用不可になっていた場合、変更が不可能になります。
そこで、mysql コマンドを使って直にパスワードを変更する方法を紹介します。
目次
データベース名、ユーザ名、パスワードを確認
WordPress のトップディレクトリに、WordPress の設定ファイル wp-config.php があるので、そこにある設定値を確認します。
wp-config.php
: /** WordPress のためのデータベース名 */ define('DB_NAME', 'dbname'); /** MySQL データベースのユーザー名 */ define('DB_USER', 'dbuser'); /** MySQL データベースのパスワード */ define('DB_PASSWORD', 'password123');
mysql コマンドでアクセス
サーバにログインして mysql コマンドを使ってDBにアクセします。
// -uユーザ名、-pパスワード データベース名 $ mysql -u dbuser -ppassword123 dbname // テーブルの情報を確認します。 MariaDB [dbname]> show tables; +-----------------------+ | Tables_in_dbname | +-----------------------+ | cerber_acl | | cerber_blocks | | cerber_lab | | cerber_log | | wp_commentmeta | | wp_comments | | wp_links | | wp_options | | wp_postmeta | | wp_posts | | wp_term_relationships | | wp_term_taxonomy | | wp_termmeta | | wp_terms | | wp_usermeta | | wp_users | <- デフォルトでは、wp_users がユーザ情報ファイルです。先頭の wp_ は環境により異なる場合があります。 +-----------------------+ 16 rows in set (0.00 sec)
テーブルの中身を確認
テーブルの中身を確認してユーザの情報を参照します。user_pass が暗号化されたパスワードです。
> select * from wp_users; +----+------------+------------------------------------+---------------+-----------------------------+----------+---------------------+-----------------------------------------------+-------------+--------------+ | ID | user_login | user_pass | user_nicename | user_email | user_url | user_registered | user_activation_key | user_status | display_name | +----+------------+------------------------------------+---------------+-----------------------------+----------+---------------------+-----------------------------------------------+-------------+--------------+ : | 2 | taro | $P$BmdfbOL7Xg/aZ/yWljsIbByKEiQFM8/ | taro | taro@example.com | | 2017-07-07 05:29:21 | | 0 | TaroYamada | +----+------------+------------------------------------+---------------+-----------------------------+----------+---------------------+-----------------------------------------------+-------------+--------------+ 2 rows in set (0.00 sec)
対象ユーザのパスワードを admin に変更します。admin = $P$BWMCRV/fMWZPPxVRecw8IzGlYwwzsv. です。
MariaDB [dbname]> update wp_users SET user_pass = "$P$BWMCRV/fMWZPPxVRecw8IzGlYwwzsv." WHERE user_login = "taro"; Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0
以上で、taro ユーザはパスワード admin でログイン出来るようになります。