解決Mysql:ERROR 1045 (28000):Access denied for user ‘root‘@‘localhost‘ (using password: NO)的方法

黄文Rex發表於2024-10-26

遇到 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 錯誤時,通常是因為嘗試以 root 使用者身份登入 MySQL 時沒有提供密碼或提供的密碼不正確。以下是解決此問題的步驟:

  • 檢查是否設定了密碼

    • 如果從未為 root 使用者設定過密碼,可以嘗試在命令列中直接輸入 mysql -u root 登入。
    • 如果之前設定過密碼,確保使用正確的密碼嘗試登入。
  • 重置 root 密碼

    • 停止 MySQL 服務:sudo systemctl stop mysqlsudo service mysql stop
    • 啟動 MySQL 跳過許可權表:sudo mysqld_safe --skip-grant-tables &
    • 重新連線到 MySQL:mysql -u root
    • 在 MySQL 提示符下,選擇 MySQL 資料庫:USE mysql;
    • 更新 root 使用者的密碼:
      UPDATE user SET authentication_string=PASSWORD('新密碼') WHERE User='root';
      FLUSH PRIVILEGES;
    • 退出 MySQL:exit
    • 重啟 MySQL 服務:sudo systemctl start mysqlsudo service mysql start
    • 使用新密碼登入:mysql -u root -p

相關文章