MySQLのrootユーザーのパスワードの再設定

MySQLの設定を間違って、rootユーザーに対して、自分が思っているのと異なるパスワードを設定してしまったことがありました。
このようなときや、rootユーザーのパスワードを忘れてしまったときなどに、rootユーザーのパスワードを再設定する方法を紹介します。
なお、CentOSでの手順で解説しますので、他のOSの場合は若干手順が異なります。

1.mysqlのデーモンの停止

まず、起動しているmysqlのデーモンを停止します。
CentOSなら、以下のようなコマンドで停止します。

sudo service mysqld stop

2.パスワードなしでデーモンを起動

次に、パスワードなしの状態で、デーモンを起動します。
「/path/to」の部分は、mysqld_safeコマンドがインストールされているパスに置き換えます。

sudo /path/to/mysqld_safe --skip-grant-tables &

デーモンが起動したら、Enterキーを押してコマンド入力の状態に戻ります。

3.パスワードを設定する

次に、「mysql -u root」のコマンドを入力して、MySQLをSQL文で操作する状態にします。
「mysql>」のプロンプトが表示されたら、以下のSQL文を入力します。
「パスワード」の部分は、設定したいパスワードに置き換えます。

update mysql.user set password=password('パスワード') where user='root';

さらに、以下のSQL文を実行します。

flush privileges;

そして、「exit」の文を入力して、mysqlコマンドを終了します。

4.デーモンを終了

次に、以下のコマンドを入力して、パスワード再設定用に起動したデーモンを終了します。
「/path/to」の部分は、mysqladminコマンドがインストールされているパスに置き換えます。

sudo mysqladmin -u root -p shutdown

「Enter password:」のメッセージが表示されますので、手順3で設定したパスワードを入力します。

5.MySQLの再起動

最後に、以下のコマンドを入力して、MySQLの通常のデーモンを再起動します。

sudo service mysqld start