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

MySQL 5.6 忘記 root 密碼重置圖文教程(Windows 環境)

     編輯:MySQL 綜合教學

MySQL 5.6 忘記 root 密碼重置圖文教程(Windows 環境)

MySQL 5.6 引入了許多效能優化特性,但密碼重置流程與 5.5 大同小異。本文提供針對 5.6 版本的 Windows 環境圖文級重置教程,含版本確認、服務管理、雙視窗操作、密碼欄位更新、進程清理全流程,確保零失誤執行。


前置確認:查看安裝版本

C:\> rpm -qa | grep MySQL
MySQL-server-5.6.15-1.el6.x86_64
MySQL-client-5.6.15-1.el6.x86_64
MySQL-shared-compat-5.6.15-1.el6.x86_64
MySQL-devel-5.6.15-1.el6.x86_64
perl-DBD-MySQL-4.022-1.el6.rfx.x86_64

Windows 環境可在「控制台 → 程式和功能」查看版本,或執行 mysql --version。


重置完整步驟

步驟 1:停止 MySQL 服務並清理進程

net stop mysql

打開任務管理器 → 詳細資料,檢查是否有 mysqld.exe、mysql.exe 殘留進程,**全部結束**,避免端口衝突。

步驟 2:切換到 bin 目錄並啟動免密模式

cd "D:\Program Files\MySQL\MySQL Server 5.6\bin"
mysqld --skip-grant-tables

注意:命令末尾**無分號**。執行後視窗顯示啟動資訊並停留閃爍游標,**此視窗不可關閉**。

mysqld --skip-grant-tables 啟動畫面

步驟 3:新開 CMD 視窗無密登入


cd "D:\Program Files\MySQL\MySQL Server 5.6\bin"
mysql -u root -p

提示 Enter password: 時**直接按 Enter**(空密碼),即可進入 mysql> 提示符。

mysql -u root -p 空密碼登入

步驟 4:更新 root 密碼


mysql> UPDATE mysql.user SET password=PASSWORD('root') WHERE User='root';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed: 3  Warnings: 0

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

MySQL 5.6 密碼欄位仍為 password,使用 PASSWORD() 函數。WHERE User='root' 會更新所有 Host 的 root 帳號(localhost、127.0.0.1、% 等),建議執行前用 SELECT User, Host FROM mysql.user WHERE User='root'; 確認。

步驟 5:結束免密進程並重啟服務

  1. 關閉步驟 2 的 mysqld 視窗(Ctrl+C),或任務管理器結束 mysqld.exe
  2. 執行:net start mysql

步驟 6:驗證新密碼


mysql -u root -proot
Welcome to the MySQL monitor...
mysql>

關鍵操作圖解

mysqld 免密啟動視窗

空密碼登入成功


常見問題快速排查

問題原因解決
步驟 3 提示 ERROR 2003步驟 2 的 mysqld 未成功啟動或已退出查看步驟 2 視窗錯誤訊息;檢查 datadir 權限、端口佔用、配置檔語法
步驟 4 0 rows affecteduser 表無 root 帳號或 Host 不匹配SELECT User, Host, password FROM mysql.user; 確認實際帳號
步驟 5 net start mysql 失敗步驟 2 的 mysqld 進程未結束,佔用 3306 端口任務管理器強制結束所有 mysqld.exe
驗證步驟仍提示密碼錯誤未執行 FLUSH PRIVILEGES / 權限快取未刷新重新執行 FLUSH PRIVILEGES;或重啟服務後再試
警告 Using a password on the command line interface can be insecure命令列明文密碼(-proot)觸發安全警告屬正常警告,不影響功能。生產環境請用 -p 交互式輸入

5.6 版本特有注意事項

  1. 密碼欄位:password(char(41)),5.7 改為 authentication_string(text)
  2. PASSWORD() 函數:5.6 仍支援,但 8.0 已移除,升級時需重置密碼
  3. 預設驗證插件:mysql_native_password,無 8.0 的 caching_sha2_password 相容性問題
  4. 安全建議:5.6 官方支援已結束(2021 年 2 月),生產環境請規劃升級至 5.7/8.0

Linux 環境 5.6 快速參考


# 1. 停止服務
service mysql stop
# 或 systemctl stop mysqld

# 2. 免密啟動
mysqld_safe --skip-grant-tables --skip-networking &

# 3. 改密
mysql -u root
mysql> UPDATE mysql.user SET password=PASSWORD('newpass') WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> QUIT

# 4. 重啟
service mysql restart
# 或 systemctl restart mysqld

一句話總結:MySQL 5.6 Windows 重置 = 停服務 → 任管殺進程 → mysqld --skip-grant-tables 掛視窗 → 新視窗 mysql -uroot -p 空密登入 → UPDATE ... PASSWORD('new') → FLUSH PRIVILEGES → 殺掛視窗進程 → 起服務 → 驗證。核心陷阱:**雙視窗協作、進程必殺、FLUSH 必執行**。

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