MySQLのrootログインで「Access denied for user 'root'@'localhost' (using password: YES)」に遭遇した場合の対処
小粋空間 » MySQL » MySQLのrootログインで「Access denied for user 'root'@'localhost' (using password: YES)」に遭遇した場合の対処
MySQLのrootログインで「Access denied for user 'root'@'localhost' (using password: YES)」に遭遇した場合の対処方法を紹介します。
1.問題点
MySQLをインストールし、mysqldサービスを起動し、mysqladminコマンドでrootログインをしようとしたところ、下記のエラーに遭遇しました。
# mysqladmin -u root password -p
Enter password:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'
ちなみにrootの初期パスワードは、
/var/log/mysqld.log
2023-08-26T06:33:00.897137Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: :Vqw<Poh0:gY
の行末に記録されています。
ただ、今回はこのパスワードを設定しても上記のエラーに遭遇しました。
2.対処
手順は下記の通りです。
- /etc/my.cnf または /etc/mysql/my.cnf を任意のエディタで開く
- "[mysqld]"の下に「skip-grant-tables under」を追加
- mysqldを再起動
- 「mysql -u root -p」を実行し、パスワードを聞かれても入力せずにリターン(これでログインできる)
- プロンプトが「mysql>」になったら「flush privileges;」を入力(権限の反映)
- 「ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';」を実行(NewPasswordには新しいパスワードを設定)
- quitでmysqlを終了し、再度「mysql -u root -p」を実行。先ほどのパスワードでログインできることを確認
- OKであれば、my.cnfに追加した設定「skip-grant-tables under」を削除
- mysqldを再起動
3.参考サイト
参考サイトは下記です。ありがとうございました。