2011年8月11日木曜日

MySQLのrootユーザのパスワードを忘れた時の対処法

MySQLのrootユーザのパスワードを忘れ、どうにもこうにもならなくなった時の対処法です。
手順は以下のとおり。

  1. mysqld起動時にskip-grant-tablesのオプションを渡す
  2. パスワードを設定し直す
  3. mysqldの再起動


起動時にskip-grant-tablesのオプションを渡す

mysqld_safeを使うなら
$ mysqld_safe --defaults-file=/path/to/my.cnf --port=3306 --socket=/path/to/mysql.sock --old-passwords --datadir=/path/to/data --log-error=/path/to/mysqld.log   --default-tabletype=InnoDB --skip-grant-tables

my.cnfに設定するなら
[mysqld]
skip-grant-tables

パスワードを設定し直す

update mysql.user set Password=PASSWORD('passwd') where User='root';

mysqldの再起動

手順1で起動したままだと、認証なしでログインで来てしまうので、設定を元に戻して必ず再起動するようにしましょう。

0 件のコメント:

コメントを投稿