打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
一键清空本地MySQL8.0密码脚本,再也不用担心MySQL密码忘记了

之前我开发了一个爆破MySQL简单密码的Python脚本,但是对于MySQL就安装在自己机器上这种情况根本没有必要,只要我们拥有关闭和启动MySQL服务进程的权限,我们就可以直接重设密码。

具体原理:

  1. 结束MySQL服务进程
  2. 以跳过权限表检查的方式启动MySQL服务进程
  3. 修改存储用户密码的表,指定root本地用户的密码为空
  4. 结束MySQL服务进程
  5. 以正常方式启动MySQL服务进程

注意:命令行方式操作服务进程需要管理员权限

最终编写如下cmd脚本(保存文件名后缀为.cmd):

TASKKILL /F /IM mysqld.exe /T
start D:\software\mysql-8.0.25-winx64\bin\mysqld --console --skip-grant-tables --shared-memory
echo UPDATE mysql.user SET authentication_string='' WHERE user='root' and host='localhost';>t.sql
TIMEOUT /T 2
D:\software\mysql-8.0.25-winx64\bin\mysql<t.sql
TASKKILL /F /IM mysqld.exe /T
net start mysql8.0

以管理员身份运行以上脚本,即可清空本地MySQL的密码:

之所以写D:\software\mysql-8.0.25-winx64\bin\这种全路径形式是因为我没有将MySQL的bin目录加入path环境变量,若你的电脑已经将该目录加入环境则可以去掉,否则修改为你的MySQL安装位置的bin目录。

net start mysql8.0启动了名称为mysql8.0的服务。这是我在前面安装MySQL8.0时这么命名服务名称的,详见:不卸载原有mysql直接安装mysql8.0

链接:https://blog.csdn.net/as604049322/article/details/113204880

需要更换为你的MySQL注册的服务名称。若没有注册服务,则需要按照你平时启动MySQL服务的方法启动。

执行完以上脚本后就可以免密登录MySQL了,登录后就可以执行以下命令,修改MySQL为任意密码(这里修改密码为123456):

ALTER user 'root'@'localhost' IDENTIFIED BY '123456';

然后重启MySQL服务使密码生效:

net start mysql8.0
net stop mysql8.0

其实我们也可以脚本中自行进行管理员权限提权,这样就可以直接双击脚本运行。

只需在脚本开头加上如下这行命令:

%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit

对于MySQL 5.x版本,重置脚本更加简单,可以直接在脚本中设置MySQL密码。

参考脚本内容为:

TASKKILL /F /IM mysqld.exe /T
start mysqld --skip-grant-tables
echo ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';>t.sql
TIMEOUT /T 2
mysql<t.sql
TASKKILL /F /IM mysqld.exe /T
net start MySQL

根据实际情况修改即可。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如何查看mysql初始密码
安装MySQL
./mysqld: Too many arguments (first extra is 'start').
linux系统设置程序开机启动(以mysql为例)
Mysql出现问题:如何查询插件,安装插件解决方案
linux安装指定版本mysql教程-简易版
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服