田舎者Yの日記

定年退職して農業に従事している者のブログ

(海外からスパムコメントが続きましたので、コメントは承認制にします。)

MySQLのパスワードをリセットする

 自己研鑚道楽のために自宅サーバを構築し、PHP4とMySQLを導入後、Wordpressをインストールして自宅サーバにもブログを開設してみた。
  http://yngsw.net/wordpress/

 あきっぽい性格のためほとんど休眠状態である。困ったことに作者ですら、たまにしかアクセスしないためログインパスワードやMySQLのrootパスワードさえも忘れてしまう。きっと近い将来にまた忘れるであろうお馬鹿な自分のためにパスワードのリセット方法を書いておく。

  • MySQLのrootパスワードのリセット方法

 元ネタは以下のサイト
http://tech.media-index.jp/2006/11/mysqlroot.html


 私は現在、Vine 4.0 を使用しているが以下のような手順でリセットした。
まず管理者権限に移行する。
$ su

mysqlサービスを止める。
# services mysql stop

セーフモードでmysqlにログイン
# /usr/bin/mysqld_safe --user=root --skip-grant-tables & mysql mysql

ログイン後パスワードを初期化。
mysql> update user set Password=null where Host='localhost' and User='root';
mysql> exit

私はこの後、サービスを再開し、
# services mysql start

rootでログインしパスワードを設定した。
# mysql -u root

mysql> set password for root@localhost=password("新しいパスワード")

  • Wordpressのログインユーザのパスワードのリセット方法

 元ネタは下記のサイト
http://codex.xwd.jp/index.php/Resetting_your_password


 私は MySQLコマンドラインから再設定した。MySQLのrootのパスワードを忘れてしまった場合は上記の方法で再設定しておく。

 まず MD5 hash により暗号化したパスワードを用意する。
 Linux等ではコマンドラインから、

$ echo -n <新しいパスワード> | md5sum

として表示された文字列をメモする。

 次にrootとしてmysqlにログイン。

$ mysql -u root -p

 私の場合、Wordpress のデータベース名すら忘れてしまったので、その検索から

mysql> show databases;  ←ここで該当のデータベース名を確認

mysql> use (Wordpress のデータベース名);
mysql> show tables;  ←最後が users で終わるのがユーザ名のテーブル

mysql> select ID,user_login,user_pass from (上で確かめたテーブル名);
mysql> update (テーブル名) set user_pass="(あらかじめメモしたMD5で暗号化したパスワード)" where ID =(上で確かめたID);

mysql> select ID,user_login,user_pass from (テーブル名);  ←パスワードが変わったことを確認

 これで新しいパスワードに再設定されるはずである。
実を言うと今回、再設定しようと思ったパスワードが既に設定されたパスワードであった。つまり自分が思いついたパスワード以外でログインを試みていたのだ。まったくアホな私である。