エラーメッセージ
エラー 1045 (28000): ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワードを使用: YES)
エラーの理由
通常、この問題は、MySQL のインストール完了後にデフォルトの root ユーザーが作成され、パスワードがランダムに生成されるため、MySQL の初期インストール後に発生します。表示するには次のコマンドを使用します。
grep 'temporary password' /var/log/mysqld.log
この仮パスワードを使用してログインする場合は、以下の手順 1 と 2 は必要ありません。
解決
- データベースを閉じる
systemctl stop mysqld
- 着替える
登录时跳过权限检查
vim /etc/my.cnf
# 在[mysqld]后添加 skip-grant-tables
- サービスを再起動する
systemctl restart mysqld
- パスワードを変更する
mysql –uroot –p # 直接回车(Enter)
mysql> use mysql;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Passwd@123';
# 若报错:The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
# 先执行 flush privileges;
# 再重新执行 ALTER USER...
mysql> quit
- 修正効果を確認する
mysql –uroot –pPasswd@123
- 変更した場合は
my.cnf
、忘れずに元に戻してください。