首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Linux MySQL 5.6 root 登入失敗 ERROR 1045 (28000) 完整排查與修復指南

     編輯:MySQL 綜合教學

Linux MySQL 5.6 root 登入失敗 ERROR 1045 (28000) 完整排查與修復指南

全新安裝 MySQL 5.6(RPM 包)後,直接 mysql -u root -p 報錯:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
原因:5.6+ 版本不再預設空密碼,且未生成 .mysql_secret 檔案。需跳過權限表重置密碼。

環境

  • OS:RHEL 5.7 64-bit
  • MySQL:5.6.19 RPM 安裝

修復步驟

  1. 停止服務
    /etc/rc.d/init.d/mysql stop
    
  2. 跳過權限表啟動
    mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
    # 此終端會阻塞,另開終端操作或 Ctrl+Z 後 bg
    
  3. 免密登入並修改密碼
    mysql -u root
    # 進入 mysql> 提示符
    UPDATE mysql.user SET password=PASSWORD('NewPass123#') WHERE user='root' AND host='localhost';
    FLUSH PRIVILEGES;
    QUIT;
    
  4. 正常重啟驗證
    /etc/rc.d/init.d/mysql restart
    mysql -u root -p'NewPass123#'
    # 成功進入
    

常見坑點

  • --skip-networking 非必需,但建議加上防止外部連入無權限實例。
  • 若提示 ERROR 1820 (HY000): You must SET PASSWORD before executing this statement,執行 SET PASSWORD = PASSWORD('NewPass123#'); 即可。
  • 修改後必須 FLUSH PRIVILEGES 或重啟服務生效。

參考資料

  • MySQL 官方文檔:Resetting the Root Password
  • 社區實踐:黃一花博客
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved