一次MySql重置root密码无效的实战记录

目录
  • 前言
  • 项目场景:
  • 问题描述
  • 原因分析:
  • 解决方案:
    • 1.正常关闭mysql服务
    • 2.设置跳过权限启动mysql
    • 3. 修改密码
    • 4. 尝试登陆
  • 总结

前言

说起这个事情吧也相对来说比较尴尬,对于一个技术来说忘记密码然后找回密码都是相当简单的一个事情,但是在生产环境中没有保存记录只能是自己的失职,尴尬就尴尬在明明重置成功了却没有生效,弄得好几个工程师在哪里挠头!!!也是经过不断得摸索测试方案最后也是解决了这个问题,下面就简单跟大家分享一下:

项目场景:

这个场景比较简单,因为我们是测试环境嘛,所以也就只有一台MySql数据库,只需要对这个数据库进行密码修改就可以了,而且也不用担心搞坏得问题,再一个最最最最重要得就是它可以随时进行重启,不需要考虑业务情况,当然在生产环境大家一定要考虑时间空档期,不然数据丢失就很麻烦了,而且操作的又是数据库,就相当于在脑袋上开刀一样,废话不多说了下面是环境情况:

操作系统:windows server 2019 数据中心版本

MySql:经典安装 MySql 5.6

问题描述

问题就是:使用--skip-grant-tables跳过权限,然后使用update修改root密码后,使用 FLUSH PRIVILEGES;刷新,使用新密码连接mysql提示密码错误,无非登录

下面是我重置密码的过程,大家也可以参考下,看看是不是有忽略的地方

1.停止mysql服务

2.使用--skip-grant-tables跳过权限启动

3.登录并修改密码

4.关闭mysql进程及命令行窗口,重新启动mysql服务,尝试登陆

尝试登陆

明明密码修改成功了,密码也输入成功了,结果却在登陆的时候无发登陆成功

原因分析:

经我们几个人的不断测试,不断尝试,最终发现由于--skip-grant-tables这个参数造成的,其实说白了这个就是启动时生效了但是没有指定mysql的配置文件,所以这个模式下的所有操作都是无效的,设置成功了也不会修改真正的数据库文件的,也就是你把这个进程关掉了,他自己也就把数据还原回之前的了,这个跟mysql的安装方式也有关的,采用mysql免安装版本用以上操作就可以生效,但是按照版本就无法生效的,我已经尝试多个版本都是这样。
也可能不是这个原因,有异议的小伙伴欢迎大家留言一起探讨哦

下面是需要修改的跳过权限启动的命令

mysqld.exe --defaults-file="my.ini路径" --skip-grant-tables

解决方案:

1.正常关闭mysql服务

2.设置跳过权限启动mysql

(这里是和之前操作不一样的地方)

mysqld.exe --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.6\my.ini" --skip-grant-tables

--defaults-file="C:\ProgramData\MySQL\MySQL Server 5.6\my.ini" //这个直接在服务中找到mysql服务,右键属性就可以看到这个路径了

前面是mysqld的启动程序位置,后面是指定mysql的配置文件也就是my.ini文件

启动成功

3. 修改密码

开启新命令行窗口,连接mysql

连接成功

修改密码

修改成功,退出登陆,重启mysql服务

4. 尝试登陆

启动成功,尝试使用新密码进行登陆

发现已经连接成功

总结

到此这篇关于一次MySql重置root密码无效的文章就介绍到这了,更多相关MySql重置root密码无效内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • windows下重置mysql的root密码方法介绍

    今天发现 WordPress 连接不上数据库,登录 window server 服务器查看,所有服务均运行正常. 使用 root 账号登录 mysql 数据库,结果提示密码不匹配.我突然意识到,服务器可能遭受到 SQL注入 攻击了-- 至于事故发生的原因和之后所做的补救措施,以后有机会我会聊一聊的.这里我主要讲一下 mysql 用户密码的重置步骤. 重置 root 密码 在忘记 root 密码的情况下,可以进入 mysql 的安全模式,重置 root 密码. 1. 停止 MySQL 服务 打开命

  • mysql8.0.12如何重置root密码

    在安装完数据库后,由于自己不小心直接关闭了安装窗口,或者长时间没有使用root用户登录系统,导致忘记了root密码,这时就需要重置MySQL的root密码.当然,最简单方式自然是删除数据库的data目录,然后重新安装数据库.但是很多时间我们需要保留data目录中的数据,所以就需要查找如何重置root密码. 我们知道,在知道root密码时,可以使用"ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';"指令来修改root用户的密码,如下图:

  • Window下Mysql忘记root密码怎么重置

    本人机器环境: Windows 2008 R2 MySQL 5.6 以"Window下忘记Mysql的root密码"百度,找到一大堆解决方案.大多大同小异,比较经典的是百度文库上的一篇[1],图文并茂,条理也比较清晰.立刻按照这篇文章描述的操作. 具体操作如下: 以下步骤如果添加了MySQL的环境变量,则可以直接运行mysql有关命令,否则必须到mysql安装目录的bin目录下操作. 步骤如下: 1.停止mysql服务(以管理员身份,在cmd命令行下运行) net stop mysql

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

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

  • 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.重新打

  • MySQL重置root密码提示"Unknown column ‘password"的解决方法

    晚上打开MAC,发现root帐户突然不能正常登陆MySQL,于是打算重置密码,看了几篇文章,竟然重置不成功,总是得到Unknown column 'password'的错误,看了user的表结构也确实没有该字段了.经查发现是MySQL升级后将字段名给改了,password名称改为authentication_string了.知道原因后,按照如下命令就可以成功重置root密码了. $sudo mysql.server stop #先关闭正常的MySQL服务 $sudo mysqld_safe --

  • 忘记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).跳过权限检查启

  • 重置mysql的root密码最简单的方法

    我的mysql版本 MYSQL V5.7.9,旧版本请使用: UPDATE mysql.user SET Password=PASSWORD('新密码') WHERE User='root'; Mac OS X - 重置 MySQL Root密码 密码太多记不住??你是否忘记了Mac OS 的MySQL的root密码? 通过以下4步就可重新设置新密码: 1. 停止 mysql server. 通常是在 '系统偏好设置' > MySQL > 'Stop MySQL Server' 2. 打开终端

  • Mysql 5.7 忘记root密码或重置密码的详细方法

    在Centos中安装完MySQL数据库以后,不知道密码,这可怎么办,下面给大家说一下怎么重置密码 1.修改配置文件my.cnf 按i编辑 [root@iZ2ze14tbj23jllo85kuh1Z ~]# vim /etc/my.cnf 在[mysqld]中添加 skip-grant-tables 例如: [mysqld] **skip-grant-tables** datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock 键盘 Esc 保存

  • mysql8重置root用户密码的完整步骤

    前言 最近很多新入职的同事问这个问题,特别是通过 homebrew 自动安装的 mysql ,其版本默认已经是 8.0 了,由于增加了一些安全策略等限制,所以修改用户密码会稍微麻烦些,索性就把这个总结贴一下吧. 下面话不多说了,来一起看看详细的介绍吧 步骤如下: 1.首先查看 root 用户相关信息,在 mysql 数据库的 user 表中: select host, user, authentication_string, plugin from user; host:允许用户登录的ip'位置

随机推荐