一键清空(重置)本地MySQL8.0密码脚本

 更新时间:2023年01月13日 10:49:38   作者:小小明-代码实体  
这篇文章主要介绍了一键清空本地MySQL8.0密码脚本,再也不用担心MySQL密码忘记了,很容易的解决了忘记mysql密码的烦恼,操作方法也非常简单,需要的朋友可以参考下

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

具体原理:

  • 结束MySQL服务进程
  • 以跳过权限表检查的方式启动MySQL服务进程
  • 修改存储用户密码的表,指定root本地用户的密码为空
  • 结束MySQL服务进程
  • 以正常方式启动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

需要更换为你的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

根据实际情况修改即可。

到此这篇关于一键清空(重置)本地MySQL8.0密码脚本的文章就介绍到这了,更多相关清空MySQL8.0密码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL字符串日期格式转换的几种常用方法例子解析

    MySQL字符串日期格式转换的几种常用方法例子解析

    这篇文章主要给大家介绍了MySQL字符串日期格式转换的几种常用方法例子解析,MySQL提供了多种函数来处理字符串日期格式的转换,这些函数可以帮助用户在不同的日期格式之间进行转换,以及进行日期的加减和时间戳的转换操作,需要的朋友可以参考下
    2024-11-11
  • MySQL统计函数GROUP_CONCAT使用陷阱分析

    MySQL统计函数GROUP_CONCAT使用陷阱分析

    这篇文章主要介绍了MySQL统计函数GROUP_CONCAT使用中的陷阱,结合实例形式分析了GROUP_CONCAT用于统计时的长度限制问题与相关注意事项,需要的朋友可以参考下
    2016-06-06
  • 浅谈MySQL之浅入深出页原理

    浅谈MySQL之浅入深出页原理

    首先,我们需要知道,页(Pages)是InnoDB中管理数据的最小单元。Buffer Pool中存的就是一页一页的数据。当我们要查询的数据不在Buffer Pool中时,InnoDB会将记录所在的页整个加载到Buffer Pool中去;同样,将Buffer Pool中的脏页刷入磁盘时,也是按照页为单位刷入磁盘的
    2021-06-06
  • SQLyog错误号码2058最新解决办法

    SQLyog错误号码2058最新解决办法

    这篇文章主要给大家介绍了关于SQLyog错误号码2058的最新解决办法,使用sqlyog连接数据库过程中可能会出现2058错误,出现的原因是因为MYSQL8.0对密码的加密方式进行了改变,需要的朋友可以参考下
    2023-08-08
  • MySQL中无GROUP BY情况下直接使用HAVING语句的问题探究

    MySQL中无GROUP BY情况下直接使用HAVING语句的问题探究

    这篇文章主要介绍了MySQL中无GROUP BY情况下直接使用HAVING语句的问题探究,同时探究了该情况下MAX与MIN功能的使用情况,需要的朋友可以参考下
    2015-05-05
  • mysql主从复制的实现步骤

    mysql主从复制的实现步骤

    本文主要介绍了mysql主从复制的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • 在MySQL 8.0版本中开启远程登录详细的操作步骤

    在MySQL 8.0版本中开启远程登录详细的操作步骤

    有时数据库所在机器与项目运行的机器不是同一个,那么就涉及到远程链接数据库了,下面这篇文章主要给大家介绍了关于在MySQL 8.0版本中开启远程登录详细的操作步骤,需要的朋友可以参考下
    2024-04-04
  • mysql 实现互换表中两列数据方法简单实例

    mysql 实现互换表中两列数据方法简单实例

    这篇文章主要介绍了mysql 实现互换表中两列数据方法简单实例的相关资料,需要的朋友可以参考下
    2016-10-10
  • MySQL新增字段后Java实体未更新的潜在问题与解决方案

    MySQL新增字段后Java实体未更新的潜在问题与解决方案

    在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与 Java 对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可能忘记同步更新Java实体类,会导致什么问题?接下小编给大家介绍了MySQL新增字段后Java实体未更新的潜在问题与解决方案
    2025-03-03
  • mysql实现从导出数据的sql文件中只导入指定的一个表

    mysql实现从导出数据的sql文件中只导入指定的一个表

    这篇文章主要介绍了mysql实现从导出数据的sql文件中只导入指定的一个表,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11

最新评论