mysqlのrootのパスワードを初期化

なぜかMySQLにログインできなくなってあたふた。原因がよく分かっていないのですが、直前にパスワード関連でいじったのは、こちらのエントリでの認証プロトコル程度。といっても認証プロトコル変更後も、しばらくはログインできていたので謎です…。


ともかく、パスワードを初期化することにしました。例によってMySQLリファレンス参照です。
http://dev.mysql.com/doc/refman/5.1/ja/resetting-permissions.html

パスワード変更方法

まず適当なディレクトリ以下に、適当なテキストファイルを作成します。今回はC:\以下にmysql-init.txtを作成しました。

# touch mysql-init.txt
# ls mysql*
mysql-init.txt

ちゃんとファイルが作成されていることを確認したら、mysql-init.txtを編集して保存します。必要なのはたった一行。

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('ぱすわーど');


準備が整ったところで、MySQLサーバを停止します。マニュアルに従い、コントロールパネルから落としました。「コントロールパネル>管理ツール>サービス」と進んで、ローカルのサービスからMySQLを選択、「サービスの停止」を指定します。

次に、MySQLのインストールディレクトリ(便宜上"MYSQL_HOME"と表示)へ移動します。続いて、コマンドを入力。

# cd [MYSQL_HOME]
# ./bin/mysqld-nt --init-file=C:/mysql-init.txt


これで初期化完了です!