MySQLのrootのパスワードを忘れた場合に変更する方法メモ

前任の人がrootのパスワード残さないまま居なくなって、
とっても困ったので(grantできない)、
初期化する方法見てたんだけど、日本語マニュアルのじゃ治らなくて、
本家の方みたら治った

> UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
> FLUSH PRIVILEGES;

これでMyNewPassに新しいパスワード入れればokみたい。

MySQL :: MySQL 5.1 Reference Manual :: B.1.4.1 How to Reset the Root Password
http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html


・5/31追記
なぜかホッテントリに上がってしまっていたので、ちょっと補足。
rootのパスワード変更するには、一度mysqldをkillして、--skip-grant-tablesオプションつけて起動した状態じゃないと変更できません。
普通にgrant-tablesをskipしない状態でやったら多分出来ないんじゃないかなぁ。



・更に追記
なんか--skip-grant-tablesしなくても任意のユーザーでログインしたらrootのパスワード変えれた。
こわー。


>id:tenkomaさん
*任意のユーザーはこんな権限で作ってました

CREATE USER 'sample'@'%' IDENTIFIED BY '******';
GRANT SELECT , INSERT , UPDATE , DELETE , FILE ON * . * TO 'sample'@'%' IDENTIFIED BY '******' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

この場合はFLUSH PRIVILEGES;が実行できなかったですが。
任意のユーザーの条件によって出来てただけなので、誤表記にあたるので削除。