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

MySQL root 密碼修改與遺忘密碼找回完整指南(Windows/Linux 通用)

     編輯:MySQL 綜合教學

MySQL root 密碼修改與找回全攻略

整理 Windows 與 Linux 通用的 root 密碼修改方法,包含正常修改、配置文件跳過授權、命令行跳過授權、服務註冊修復等實戰場景。

一、正常修改密碼(已知舊密碼)

# 方法 1:mysqladmin
mysqladmin -u root -p'oldpass' password 'newpass'

# 方法 2:SQL 語句
mysql -u root -p'oldpass'
mysql> USE mysql;
mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;

二、遺忘密碼:修改 my.cnf/my.ini 跳過授權表

  1. 編輯配置文件(/etc/my.cnf 或 my.ini),[mysqld] 區添加 skip-grant-tables。
  2. 重啟 MySQL 服務。
  3. 無密碼登錄:mysql -u root mysql。
  4. 更新密碼:UPDATE user SET Password = PASSWORD('newpass') WHERE User = 'root'; FLUSH PRIVILEGES;。
  5. 刪除配置文件中的 skip-grant-tables,重啟服務恢復正常認證。

三、遺忘密碼:命令行臨時跳過授權(不改配置文件)

  1. 停止服務:systemctl stop mysqld / net stop mysql。
  2. 前台啟動跳過授權:
    mysqld --skip-grant-tables --skip-networking &   # Linux
    mysqld --skip-grant-tables --skip-networking      # Windows (另開窗口)
  3. 另開窗口無密碼登錄修改密碼(同方法二步驟 4)。
  4. 關閉前台進程(Ctrl+C 或任務管理器結束),正常啟動服務。

四、Windows 服務註冊修復(解決安裝後無法啟動)

若安裝後服務啟動失敗,嘗試重新註冊服務:

# 以管理員身份運行 CMD
mysqld --remove MySQL          # 移除舊服務(服務名查看 services.msc)
mysqld --install MySQL         # 重新安裝服務
net start MySQL                # 啟動服務

或在「服務」管理器中將服務登錄身份改為本地賬戶並設置密碼。

五、MySQL 5.7.6+ / 8.0 語法差異提醒

  • 列名:Password -> authentication_string。
  • 推薦使用 ALTER USER:ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpass';(自動刷新權限)。
  • 8.0 默認 caching_sha2_password,舊客戶端需指定 mysql_native_password。

六、安全最佳實踐

  • 密碼複雜度:≥12 位,含大小寫、數字、特殊符號。
  • 禁用遠程 root:UPDATE user SET Host='localhost' WHERE User='root'; FLUSH PRIVILEGES;。
  • 定期輪換密碼,審計賬號權限。

總結

已知密碼用 ALTER USER/mysqladmin;遺忘密碼用 skip-grant-tables(配置文件法或命令行法)緊急重置;Windows 服務異常嘗試重新註冊。熟練掌握三種模式,應對所有密碼管理場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved