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

一鍵重置 MySQL root 密碼批處理腳本(標準版與 WAMP 版)

     編輯:MySQL 資料庫相關知識

標準 MySQL 安裝版腳本

@echo off
title MySQL Root 密碼重置工具

:: 1. 從注冊表獲取 MySQL 安裝路徑
reg query HKLM\SYSTEM\ControlSet001\Services\MySQL | find /I "ImagePath" > C:\mysql.txt
if %errorlevel% neq 0 (
    echo MySQL 服務未找到
    pause & exit
)

:: 2. 解析路徑(去除引號、正規化斜杠)
FOR /F "tokens=2 delims=^"" %%i in (C:\mysql.txt) do set mysqlPath=%%i
del C:\mysql.txt /f
set mysqlPath=%mysqlPath:/=\%
set mysqlPath=%mysqlPath:~0,-1%

:BACKTOMAIN
set character=%mysqlPath:~-1,1%
if not %character% == \ goto GETPATH

:: 3. 進入 bin 目錄
cd /d "%mysqlPath%"
if %errorlevel% neq 0 (echo 路徑無效 & pause & exit)

:: 4. 停止服務、跳過授權表啟動
taskkill /F /IM mysqld-nt.exe
net stop mysql >nul
start /b mysqld-nt --skip-grant-tables
ping -n 2 127.0.0.1 >nul

:: 5. 執行重置 SQL
echo use mysql > c:\config.tmp
echo update user set password=password("") where user="root"; >> C:\config.tmp
echo flush privileges; >> C:\config.tmp
echo exit >> C:\config.tmp
mysql < C:\config.tmp

:: 6. 重啟服務驗證
taskkill /F /IM mysqld-nt.exe
net stop mysql >nul
net start mysql
del C:\config.tmp /F
echo 密碼已重置為空,請立即登錄修改新密碼!
pause
exit

:GETPATH
set mysqlPath=%mysqlPath:~0,-1%
goto BACKTOMAIN

WAMP 一鍵安裝包適配版

@echo off
title WAMP MySQL Root 密碼重置

:: WAMP 服務名、注冊表路徑、進程名均不同
reg query HKLM\SYSTEM\ControlSet001\Services\wampmysqld | find /I "ImagePath" > C:\mysql.txt
if %errorlevel% neq 0 (echo WAMP MySQL 未找到 & pause & exit)

FOR /F "tokens=3 delims= " %%i in (C:\mysql.txt) do set mysqlPath=%%i
del C:\mysql.txt /f
set mysqlPath=%mysqlPath:/=\%
set mysqlPath=%mysqlPath:~0,-1%

:BACKTOMAIN
set character=%mysqlPath:~-1,1%
if not %character% == \ goto GETPATH

cd /d "%mysqlPath%"
if %errorlevel% neq 0 (echo 路徑無效 & pause & exit)

taskkill /F /IM mysqld.exe
net stop wampmysqld >nul
start /b mysqld --skip-grant-tables
ping -n 2 127.0.0.1 >nul

echo use mysql > c:\config.tmp
echo update user set password=password("") where user="root"; >> C:\config.tmp
echo flush privileges; >> C:\config.tmp
echo exit >> C:\config.tmp
mysql < C:\config.tmp

taskkill /F /IM mysqld.exe
net stop wampmysqld >nul
net start wampmysqld
del C:\config.tmp /F
echo WAMP MySQL root 密碼已重置為空
pause
exit

:GETPATH
set mysqlPath=%mysqlPath:~0,-1%
goto BACKTOMAIN

關鍵差異對比

安全警示

  1. ⚠️ 腳本將密碼置空,必須立即登錄設置強密碼
  2. ⚠️ --skip-grant-tables 期間任何人可無密碼訪問,僅在維護窗口運行
  3. ⚠️ 生產環境嚴禁使用,請用官方 mysqladmin 或 ALTER USER
  4. ✅ MySQL 5.7+ 推薦:mysqladmin -u root -p password 'newpass'
  5. ✅ MySQL 8.0+ 推薦:ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpass';

通用手動重置步驟(跨平台)

# 1. 停止服務
systemctl stop mysqld

# 2. 跳過授權啟動
mysqld_safe --skip-grant-tables &

# 3. 免密登錄
mysql -u root

# 4. 修改密碼 (5.7+)
UPDATE mysql.user SET authentication_string=PASSWORD('newpass') WHERE User='root';
FLUSH PRIVILEGES;

# 5. 正常重啟
systemctl restart mysqld
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
項目標準版WAMP 版
服務名MySQLwampmysqld
注冊表鍵...\\Services\\MySQL...\\Services\\wampmysqld
進程名mysqld-nt.exemysqld.exe
安裝路徑C:\\Program Files\\MySQL...D:\\wamp\\bin\\mysql\\mysql5.x\\bin
注冊表解析tokens=2 delims="tokens=3 delims=空格