一键重置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.jb51.net

::禁用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)

相关推荐

  • CentOS下重置MySQL的root密码的教程

    本人在CentOS6.4上安装万mysql后,无法通过root进入,因为安装的时候,并没有设置root密码,似乎有个初始随机密码,但是不记得了,太麻烦,直接重置root密码. 首先,你必须要有操作系统的root权限了.要是连系统的root权限都没有的话,先考虑root系统再走下面的步骤. PS:赋予用于root权限 方法一: 修改 /etc/sudoers 文件,找到%wheel一行,把前面的注释(#)去掉 ## Allows people in group wheel to run all c

  • MySQL密码忘了怎么办?MySQL重置root密码方法

    MySQL有时候忘记了root密码是一件伤感的事.这里提供Windows 和 Linux 下的密码重置方法. Windows: 1.以系统管理员身份登陆系统. 2.打开cmd-----net start 查看mysql是否启动.启动的话就停止net stop mysql. 3.我的mysql安装在d:\usr\local\mysql4\bin下. 4.跳过权限检查启动mysql. d:\usr\local\mysql\bin\mysqld-nt --skip-grant-tables 5.重新打

  • Windows环境下重置mysql密码操作命令

    本地环境:Windows XP系统.xampp集成环境. xampp安装目录:d:/xampp 1.首先停止正在运行的MySQL进程 复制代码 代码如下: >net stop mysql 如未加载为服务,可直接在进程管理器或者服务中进行关闭. 2.以安全模式启动MySQL 进入mysql目录在命令行下运行 复制代码 代码如下: >d: >cd xampp/mysql/bin >mysqld.exe --skip-grant-tables 3.完成以后就可以不用密码进入MySQL了

  • Mac操作系统下MySQL密码忘记后重置密码的方法

    安装好MySQL以后,系统给了个默认的的密码,然后说如果忘记了默认的密码......我复制了默认密码就走过了只一步,这一步就是我漫长旅程的开始.他给的密码太复杂了,当然我得换一个,而且我还要假装我不记得密码了,就这样我走上了不归路...... 这个过程是心酸的,网上的资料多如狗,关键是各有各的错法,尝试了半天没一个对的,在即将打破心理防线,要去翻MySQL文档的时候,我改成功了.没有一个文章告诉我完整的答案,我是参考了好几个攻略,闭门造出来的车.给自己点赞.废话不多说,一步一步跟我走. 关闭my

  • 重置MySQL数据库root密码(linux/windows)

    (1)Linux系统 在SSH中执行下面的命令即可将MySQL密码重置为diavps 复制代码 代码如下: rm -f reset-mysql-root-password.phps wget http://down.hostwiki.info/mysql/reset-mysql-root-password.phps php reset-mysql-root-password.phps diavps 注意不要在带有管理面板(如Kloxo或DA)的环境中使用这个方法重置. 脚本中第13行中的以安全模

  • 忘记mysql数据库root用户密码重置方法[图文]

    一首先介绍下我所用的环境情况: 1.windows  下: 2.php服务管理器wamp5: 二话不说直下正题: 1.打开任务管理器,结束进程  mysqld-nt.exe  如图: 2.运行命令窗口 1).进行php服务管理器安装目录中的bin目录下   (我的为:D:\wamp\mysql\bin) , 操作为: (1).进入D盘           如:   d:   回车: (2).进入bin目录      如:   cd wamp\mysql\bin;  回车: (3).跳过权限检查启

  • linux系统中重置mysql的root密码

    大家知道,我们经常在linux或者windows需要用到mysql数据库,但是我们经常会犯一种特别低级的小错误,小编也时常会犯的错误,突然就忘记了mysql的root的密码,之后就会带来一系列的麻烦,下面小编告诉大家怎么在linux操作系统重置root的密码. 方法/步骤 第一步,检查操作系统是否安装有mysql数据库,在debian操作系统检查命令:dpkg --list |grep mysql 如下图: 先检查root用户密码是否已经忘记,输入命令:mysql -uroot -p 如下图:

  • Mysql5.7忘记root密码及mysql5.7修改root密码的方法

    关闭正在运行的 MySQL : [root@www.woai.it ~]# service mysql stop 运行 [root@www.woai.it ~]# mysqld_safe --skip-grant-tables & 为了安全可以这样禁止远程连接: [root@www.woai.it ~]# mysqld_safe --skip-grant-tables --skip-networking & 使用mysql连接server: [root@www.woai.it ~]# my

  • windows下忘记MySQL密码的修改方法

    一.windows下修改MySQL密码的方法如果在Windows下忘记了MySQL的密码,可以这样做:1.关闭正在运行的MySQL服务:net stop mysql或 在windows 任务管理器中结束 mysqld.exe 进程或在 管理工具里面的服务找到 mysql服务 ,将其停止: 复制代码 代码如下: C:\Users\Administrator>net stop mysqlMySQL 服务正在停止.MySQL 服务已成功停止. 2.打开命令行,转到mysql的bin目录下: 复制代码

  • 在ubuntu中重置mysql服务器root密码的方法

    首先停止mysql服务: 复制代码 代码如下: root@webserver:/home/webmaster# service mysql stop 接着采用忽略密码认证模式重新创建一个mysql服务: 复制代码 代码如下: root@webserver:/home/webmaster# mysqld --user=mysql --skip-grant-tables --skip-networking & 成功启动后返回PID及其它启动信息 复制代码 代码如下: [1] 3591 root@we

随机推荐