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
を停止し、再起動できます。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.