連休中に自宅サーバーのメンテをしようかな、と久しぶりにコンソールを立ち上げたら、MySQL のパスワード覚えてねーとなったので備忘録的に MySQL の管理者パスワードを忘れたときのリカバリー方法を書いておきます。
MySQL をセーフモードで起動する
MySQLサービスの停止 以下のコマンドを実行して、デーモンを停止する。
1 | sudo systemctl stop mariadb |
パスワード無しでログイン出来るように MySQL をセーフモードで起動する。
1 | sudo mysqld_safe --skip-grant-tables |
パスワードを変更する
ターミナルをもう1つ起動させ、以下のコマンドで MySQL に接続する。
1 | >mysql -u root mysql |
パスワードを変更する。パスワードを変更するユーザーを指定するために、where 句で条件を指定している。
1 | update user set password=PASSWORD('password') where user='root' and host='localhost'; |
INSERT、UPDATE、DELETEで権限情報を変更した場合は、サーバーの再起動かテーブルの再読込を権限情報を更新する。
1 | FLUSH PRIVILEGES; |