首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

解決 MySQL ERROR 1045 (28000): Access denied for user root@localhost

     編輯:MySQL 資料庫相關知識

錯誤現象

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

根本原因

MySQL 5.6+ 安全機制:安裝時自動生成隨機初始密碼,不再允許空密碼。

查找初始密碼

  1. 數據目錄下的 .err 日志文件(如 DESKTOP-xxx.err)
  2. 搜尋關鍵字:temporary password 或 A temporary password is generated

初始密碼提示

data 目錄

錯誤日志中的隨機密碼

登入並修改密碼

# 使用隨機密碼登入
mysql -u root -p'random_password_from_log'

# 修改為自定義密碼(MySQL 5.7+)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_strong_password';

# 或
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_strong_password');

常見誤區

  • skip-grant-tables 在 5.7+ 可能不生效(需 --skip-grant-tables --skip-networking)
  • 直接改 user 表 authentication_string 後需 FLUSH PRIVILEGES
  • 密碼策略要求:長度、大小寫、數字、特殊字符(可調 validate_password_policy)
最佳實踐: 安裝完成後立即登入修改密碼,並妥善保存隨機密碼以備不時之需。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved