MySQL の rootのパスワードを忘れた、rootパスワードの再設定

このエントリーをはてなブックマークに追加

2009/09/13 23:59 / Category mysql

mysqlにrootパスワードを設定する、rootパスワードを 忘れたときの再設定の方法。(MySQL5にて)

● rootにパスワードを設定する(通常の場合)

set password for root = password('xxxxxxxx');
flush privileges;

もしくはこちらのコマンドでも。

mysqladmin -u root password 'xxxxxxxx'

rootにパスワードが設定されていないと、一般ユーザーでも「mysql -u root」ができるので必ず設定します。

● rootのパスワードを再設定する(忘れたときの方法)

1、my.cnf 変更
mysqld のセクションに、権限テーブルを読まずに起動するよう設定

[mysqld]
skip-grant-tables

2、mysqld再起動(権限テーブルを読まないで起動)
起動、停止スクリプトがあれば

/etc/init.d/mysqld restart

または、場合によってはこんな形で。

kill `cat /usr/local/var/mysql/mysqld.pid`
sudo -u mysql /usr/local/bin/mysqld_safe &

3、rootのパスワードを設定
今ならパスワードなしで「mysql」できる状態。
mysql して、これでパスワード設定。

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

バージョンによってはmysqladmin コマンドで設定できる?

mysqladmin -u root password 'xxxxxxxx'

4、my.cnf を元に戻す
skip-grant-tables を外す

4、mysqldを通常通り再起動

/etc/init.d/mysqld restart

5、ちゃんと、パスワードなしで「mysql -u root」してもアクセスが拒否されることを確認する。

一言で言うと、「–skip-grant-tables オプション付きでmysqlサーバーを起動して、その隙に何とかする。」という作戦。

このエントリーをはてなブックマークに追加

no comments

RSS / trackback

コメントください