:: DEVELOPER ZONE
MySQL に root パスワードを設定しないと、root として接続した場合に、サーバがパスワードを一切要求しなくなります。ユーザごとに常にパスワードを設定することをお勧めします。 See 項4.3.2. 「MySQL のクラッカー対策」。
root パスワードを設定した後で、それを忘れてしまった場合、以下の手順で新しいパスワードを設定することができます。
mysqld サーバに kill(kill -9 以外)を送り、mysqld サーバを停止します。pid が .pid ファイルに格納されています。このファイルは通常、MySQL データベースディレクトリにあります。
shell> kill `cat /mysql-data-directory/hostname.pid`
これを行うには、Unix root ユーザまたは mysqld が実行しているユーザと同じでなければなりません。
--skip-grant-tables オプションを指定して mysqld を再起動します。
mysqladmin password コマンドで新しいパスワードを設定します。
shell> mysqladmin -u root password 'mynewpassword'
これで、適切に mysqld を停止し再起動するか、以下のように、アクセス権テーブルをロードできるようになります。
shell> mysqladmin -h hostname flush-privileges
この後、新しいパスワードを使用して接続できます。
もう一つの方法として、mysql クライアントを使用して新しいパスワードを設定することができます。
上述したように、mysqld を停止して、--skip-grant-tables オプションを指定して再起動します。
以下のように、mysqld サーバに接続します。
shell> mysql -u root mysql
mysql クライアントで以下のコマンドを実行します。
mysql> UPDATE user SET Password=PASSWORD('mynewpassword')
-> WHERE User='root';
mysql> FLUSH PRIVILEGES;
この後、新しいパスワードを使用して接続できます。
これで、適切に mysqld を停止し、再起動できます。
© 1995-2005 MySQL AB. All rights reserved.
