欢迎访问清竹软件站!       点击这里给我发消息 客服QQ:165461152
查看:8259 | 回复:0
楼主:清竹科技
清竹科技发表于:2014-07-04 10:15:07

前发布过一篇文章《mysql忘记root密码如何处理》
由于操作步骤比较繁琐,在这里发布一个批处理文件,将以下代码保存为bat文件,分割线无须拷贝。放到MYSQL的BIN目录下执行,执行后密码将被修改为 “qzsys.com”
由于MYSQL版本问题,有的MYSQL服务文件名可能不一样,此时需要修改代码里的mysqld-nt.exe,文件名称可以依次点开:控制面板-》管理工具-》服务-》MYSQL查看MYSQL的服务文件名,常见文件名:mysqld-nt.exe、mysqld.exe

如果以上MYSQL手动处理及BAT处理都无法讲密码修正,很可能你的MYSQL被添加了多个ROOT账户,处理办法请见文章http://www.qzsys.com/article/show_21.html


@echo off
ECHO 正在更改MYSQL密码
echo use mysql >C:\mysqlpass.txt
echo update user set password=password("qzsys.com") where user="root";>>C:\mysqlpass.txt
echo flush privileges; >>C:\mysqlpass.txt
net stop mysql 2>nul
reg query "HKLM\SYSTEM\ControlSet001\Services\mysql" /t REG_EXPAND_SZ |find /i "image" >C:\mysql.txt
if %errorlevel% neq 0 goto exit
FOR /F "tokens=2,3* delims= " %%i in (C:\mysql.txt) do echo %%j %%k >C:\mysqltemp.txt
FOR /F "tokens=1 delims=-" %%i in (C:\mysqltemp.txt) do set mysqlpath=%%i
del C:\mysql.txt /f
del C:\mysqltemp.txt /f
set mysqlpath=%mysqlpath:/=\%
set mysqlpath=%mysqlpath:"=%
SET mysqlpath=%mysqlpath:~0,-6%
if %mysqlpath:~-1% neq \ set mysqlpath=%mysqlpath:~0,-1%
cd /d "%mysqlpath%"
start mysqld-nt.exe --skip-grant-tables
mysql <C:\mysqlpass.txt
if %errorlevel% neq 0 goto out
goto ok
:exit
echo 没有发现MYSQL
pause
del C:\mysqlpass.txt /f
exit
:out
echo 密码设置失败
pause
del C:\mysqlpass.txt /f
exit
:ok
del C:\mysqlpass.txt /f
taskkill /f /im mysqld-nt.exe >nul
echo 密码已成功设成qzsys.com,已复制到剪切板
echo qzsys.com|clip
pause
net start mysql