MySQLのパスワードを忘れてしまった・・・ 〜MySQL 5.0のパスワードのリセット方法〜
忘れてしまったので、ルートパスワードのリセットを試みました。
チャレンジする
ひたすらする。あれ、うまくいかない。エラーでまくりwww
解決しない
mysqld_safeに--skip-grant-tablesオプションをつけて起動させればよいらしいです。起動はしましたが、クライアントが動かない。
mysqld.sockがあるべき場所に作られてないらしい。通常起動させると普通に作成されて、クライアントも動くのです。
諦めた
で、rootはどうやっても消せないし、データベースごと消すにもroot権限がないと無理だし。
4時間ほど頑張りましたが、諦めてOSごと入れ直すことになりそうです・・・トホホ。
パスワードさえ忘れなければ・・・
バージョン違い?
で、リセット方法変わったかも。
もしかしたらいけるかも
なんか日本語マニュアルは記述が古いみたいですね…。 http://dev.mysql.com/doc/mysql/en/resetting-permissions.html これを見た方が良いかも。
(Thanks! http://www.mysql.gr.jp/mysqlml/mysql/ and MySQLML)
MySQL :: MySQL 5.0 Reference Manual :: B.1.4.1 How to Reset the Root Password
リセットできた!
一番下に載っていたmysqlクライアントを使ったやり方でいけました。
-
- skip-grant-tablesオプションは、my.cnfで以下を追記して起動させています。
たぶん一番簡単な方法は、/etc/my.cnf に [mysqld] skip-grant-tables と書いて、普通に起動することだと思います。 必要な対処が終わったら元に戻しておきましょう。
(Thanks! http://www.mysql.gr.jp/mysqlml/mysql/ and MySQLML)
$ sudo /etc/init.d/mysql stop
mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass') -> WHERE User='root'; mysql> FLUSH PRIVILEGES;
mysqlクライアントでコマンドが成功すると、OK〜と成功したと報告してくるはずです。
最後に、my.cnfのskip-grant-tablesオプションを消すことをお忘れなく。
$ sudo /etc/init.d/mysql start
助かった!
よかったよかった。MySQLMLの皆さんに感謝感謝 MySQLML++
今夜はよく眠れそうだ Zzzz