批处理脚本一键重置mysql的root密码

批处理脚本一键重置mysql的root密码

一键重置mysql的root密码的实现脚本。

@echo off

title mysql

::从注册表找到Mysql的安装路径写入文件mysql.txt 
reg query HKLM\SYSTEM\ControlSet001\Services\MySQL | find /I "ImagePath">C:\mysql.txt 
if %errorlevel% neq 0 ( 
echo MySQL not found 
pause 
exit 
)

::以”为分隔符,截取第二段内容保存到变量mysqlPath 
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%

::如果最后一个字符不等于\,那么跳转到GETPATH删除mysqlPath的最后一个字符 
if not %character% == \ goto GETPATH

::进入mysql安装路径C:\Program Files\MySQL\MySQL Server 5.0\bin 
cd /d "%mysqlPath%"

::echo %mysqlPath%

if %errorlevel% neq 0 ( 
echo MySQL not found 
pause 
exit 
) www.jbxue.com

::禁用mysql服务,跳过权限验证修改密码 
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 
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-nt.exe 
net stop mysql >nul 
net start mysql 
del C:\config.tmp /F 
pause 
exit

::删除路径最后一个字符,跳回主程序 
:GETPATH 
set mysqlPath=%mysqlPath:~0,-1% 
goto BACKTOMAIN
如果是用wamp一键安装需要改一些脚本,主要是注册表搜索路径改变,返回值改变,服务名改变了,mysql安装路径变成D:\wamp\bin\mysql\mysql5.5.24\bin,少了mysqld-nt这个东西,进程里面也没有mysqld-nt.exe
@echo off

title mysql

reg query HKLM\SYSTEM\ControlSet001\Services\wampmysqld | find /I "ImagePath">C:\mysql.txt

if %errorlevel% neq 0 ( 
echo MySQL not found 
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%"

::echo %mysqlPath%

if %errorlevel% neq 0 ( 
echo MySQL not found 
pause 
exit 
)

taskkill /F /IM mysqld.exe 
net stop wampmysqld >nul 
start /b mysqld -nt --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

pause 
exit

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!如果您忘记了 Windows 系统上 MySQLroot 密码,可以按照以下步骤重置密码: 1. 打开命令提示符(Command Prompt)或 PowerShell,以管理员身份运行。 2. 进入 MySQL 的安装目录,一般默认安装路径为 `C:\Program Files\MySQL\MySQL Server\<版本号>\bin`。 3. 在命令提示符中输入以下命令,然后按回车键执行: ``` mysqld.exe --defaults-file="C:\ProgramData\MySQL\MySQL Server \<版本号>\my.ini" --init-file=C:\mysql-init.txt --console ``` 这里 `<版本号>` 是 MySQL 的版本号,您需要将其替换为您实际安装的版本号。 4. 创建一个文本文件(例如 `mysql-init.txt`),将以下内容复制到文件中: ``` ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; ``` 将 `'新密码'` 替换为您想要设置的新密码。请注意,这里的密码应该是强密码,并且不要忘记将其记录下来。 5. 保存并关闭文件。 6. 回到命令提示符或 PowerShell,按下 `Ctrl + C` 组合键停止正在运行的 MySQL 服务器。 7. 然后再次在命令提示符或 PowerShell 中输入以下命令,然后按回车键执行: ``` mysqld.exe --defaults-file="C:\ProgramData\MySQL\MySQL Server \<版本号>\my.ini" --console ``` 8. MySQL 服务器将以初始化模式启动,并且将加载我们在 `mysql-init.txt` 文件中定义的 SQL 脚本。在加载完成后,您将看到一条消息表示密码重置。 9. 关闭命令提示符或 PowerShell。 10. 重新打开命令提示符或 PowerShell,以管理员身份运行。 11. 在命令提示符或 PowerShell 中输入以下命令,然后按回车键执行: ``` mysql -u root -p ``` 您将被要求输入密码,将新密码输入即可登录到 MySQL。 希望这些步骤可以帮助您重置 Windows 系统上 MySQLroot 密码!如果有任何问题,请随时向我提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值