サーバーをたくさん管理してたり、メモしてなかった場合等、ついついrootパスワードを忘れてしまうことがあったりするかと思いますので、そのような場合の変更方法を書いていきたいと思います。
※流れとしては、パスワードなしでログインし、その際にパスワードを変更するという流れになります。
パスワード入力なしでログインできる設定を追記
まずは、パスワードなしでログインできるように設定ファイル(my.cnf)に「skip-grant-tables」を追記します。
$ sudo vim /etc/my.cnf
[mysqld]
skip-grant-tables ⇦追記します
追記したら再起動します。
$ sudo systemctl restart mysqld.service
これで、全てのユーザーでパスワードなしでログインできるようになります。
パスワードの再設定
パスワード指定なしで、rootユーザーでログインします。
$ mysql -u root
ログインできたら、以下のコマンドを実行し、パスワードの再設定を行います。
> ALTER USER 'root'@'localhost' IDENTIFIED BY '設定するパスワード';
設定を反映させます。
> FLUSH PRIVILEGES;
パスワードの変更はここで完了です。
設定を戻します
パスワードなしでログインできる設定(skip-grant-tables)を戻します。
※そのままにしておくとセキュリティ的に危険なので、絶対忘れないようにしましょう。
$ sudo vim /etc/my.cnf
[mysqld]
skip-grant-tables ⇦削除します
修正したら再起動します。
$ sudo systemctl restart mysqld.service
ログイン確認
パスワードの変更が完了しましたので、最後に問題なくログインできるか確認します。
以下のコマンドを実行し、設定したパスワードを入力し、ログインできることを確認します。
$ mysql -u root -p
これで完了です。
パスワードをスキップできる状態にしたままにしておくと危険ですので、設定を戻す作業は忘れないように気をつけてください(^^;
コメント