Windows上でのMySQLで、rootのパスワードがわからなくなったときのメモ

事象

Windows上でのMySQLで、rootのパスワードがわからなくなった。

対応

mysqld-nt --skip-grant-tables

で起動して、

update mysql.user set password = password('password') where user='root';
flush privileges;

を実行。
別プロンプトから

mysqladmin.exe shutdown -u root -p

して、パスワードは未入力でenter.
あとは普通にサービスなりで、起動させればOK.

skip-grant-tablesするなら、本当は

--skip-networking

をつけないと危険。

疑問点

mysqld-nt --skip-grant-tables

するときに

--defaults-file

で設定ファイルを指定しようとしたら起動できなかった。謎。

サービス登録

mysqld-nt --remove MySQL

サービス削除

mysqld-nt --install MySQL --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini"