mysqlにrootパスワードを設定する、rootパスワードを 忘れたときの再設定の方法。(MySQL5にて)
set password for root = password('xxxxxxxx');
flush privileges;
もしくはこちらのコマンドでも。
mysqladmin -u root password 'xxxxxxxx'
rootにパスワードが設定されていないと、一般ユーザーでも「mysql -u 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