Mysql重置root密码遇到的坑(忘记密码)

1、原理

通过配置参数“skip_grant_tables”在mysql启动时跳过grant_tables(授权表),从而通过命令来充值root帐号的密码

2、方式

首先需要停止mysql服务

(1)在my.ini文件的[mysqld]块下增加“skip_grant_tables”,然后重启mysql服务,再以管理员权限打开cmd执行一些列命令重置密码

步骤如下:

A、找到my.ini文件(右击mysql服务找到可执行文件路径,从所在的目录或其它层级目录搜索),在[mysqld]块下增加“skip_grant_tables”

B、重启mysql服务

C、以管理员权限打开cmd命令窗口,执行mysql -uroot –p直接回车不用输入密码

D、选择数据库:use mysql

E、更新root的密码:update user set authentication_string=password(‘新密码‘) where user=‘root‘ and Host=‘localhost‘

F、刷新权限:flush privileges

G、退出:quit

H、重新登录:mysql -uroot -p提示输入密码,这时输入密码才能登录

I、回到 my.ini 配置文件移除“skip_grant_tables”,再重启mysql

(2)直接通过命令指定参数“skip_grant_tables”启动mysql,再执行命令修改密码(与1的步骤除了指定跳过授权表参数的方式不同以外,其它都一样)

A、在第一个cmd窗口执行 mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" --skip-grant-tables   ---注意路径(以你的实际情况为准)

其它步骤同上

参考:

Windows下MySQL5.7 root 密码重置

https://blog.csdn.net/hey_yf/article/details/80024706

Windows下Mysql5.7忘记root密码的解决方法

https://www.cnblogs.com/yuwentims/p/9172463.html

3、遇到的坑

同过修改my.ini的方式配置“skip_grant_tables”再保存千万要注意编码的格式“ANSI”

(1)用Notepad++将修改了my.ini的配置

(2)重启mysql服务,就启动不了(超时),通过命令去执行接下来的操作会报“ERROR 1045 (28000): Access denied for user ‘ODBC‘@‘localhost‘ (using password: NO)”的错误

(3)第一想到的是去百度,无果后从系统事件日志开始着手,发现了一些莫名其它的错误(其实部分是系统里其它程序的错误日志):

A、首先根据关键字看到的是“服务 MySQL57 意外停止。这发生了 7 次。”并没卵用

B、然后就在这个错误的隔壁找其它错误 “应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 NT AUTHORITY\LOCAL SERVICE SID (S-1-5-19)授予针对 CLSID ”像这种不明不白的错误头脑一发热并没有多想,然后就是百度解决并没有屁用

解决方式:

https://www.cnblogs.com/ibgo/p/3550674.html

http://www.ntxz.net/?p=580

解决了这个日志,但是对mysql并没影响,现在才明白找错了方向

(4)于是将所有的事件日志清除,重启computer

(5)终于发现了一条这样的错误 “mysql 启动报错--发现系统错误2,系统找不到指定的文件”

解决方式:

https://blog.csdn.net/Marvel__Dead/article/details/63262641?locationNum=4&fps=1

解决了报错,mysql服务可以启动了

接着执行重置的命令,终于报了一条有意义的错“Found option without preceding group in config file:XXX; Fatal error in defaults handling.“,找到了原来是my.ini编码惹得祸!

改成ANSI,一切就顺利了…

参考:

MySQL报错: Found option without preceding group in config file:XXX; Fatal error in defaults handling.

https://blog.csdn.net/life_android/article/details/56512606

原文地址:https://www.cnblogs.com/hepc/p/9499527.html

时间: 2024-11-09 12:40:36

Mysql重置root密码遇到的坑(忘记密码)的相关文章

LAMP搭建20:MySQL重置root密码

默认情况下安装完成后mysql没设root密码,可以直接登录: [[email protected] ~]# mysql -uroot Welcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connection id is 9 Server version: 5.1.49 MySQL Community Server (GPL) Copyright (c) 2000, 2010, Oracle and/or it

mysql 重置root密码

最近又项目用到mysql 由于电脑上mysql是很久以前安装的root密码忘记了, 百度一下重置密码 Windows: 1.以系统管理员登陆: 2.停止MySQL服务: 3.进入CMD,进入MySQL的安装目录,假设是D:/MySQL/MySQL Server 5.0/: 4.跳过权限检查启动MySQL, D:/MySQL/MySQL Server 5.0/bin/mysqld-nt --skip-grant-tables 5.重新打开一个CMD,进入D:/MySQL/MySQL Server

MySQL重置root用户密码的方法

本教程适用于采用Win2003.WinXP操作系统的迅美VPS和云主机产品. 当管理员忘记MySQL密码怎么办?屡次输入密码,仍然提示错误,网站无法正常运行,数据库也无法管理,管理员束手无策. 网站程序或MySQL管理软件连接MySQL服务器时密码错误,会出现"1045 - Access denied for user 'root'@'localhost'(using password:YES)"的错误提示,如下图: 当确认已经忘记MySQL密码,则可以通过以下方案重置root用户密码

MySQL重置root用户密码的方法【亲测可用】

1. 报错截图 2.当确认已经忘记MySQL密码,则可以通过以下方案重置root用户密码.双击打开C:\Program Files\MySQL\MySQL Server 5.1\my.ini文件,如下图: 3. 点击“记事本”软件顶部的“编辑”,再选择“查找”,在“查找内容”处输入[mysqld],并点击“查找下一个”,它会自动转到[mysqld]字段行.在下面增加一行skip-grant-tables并保存,如下图:[mysql_5.6 没有my.ini文件,可以将my-default.ini

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密码的几种方法(windows+Linux)

重置root密码的方法: windows系统下:1.停止mysql服务:2.新建文件init-root.txt,写上如下内容: update mysql.user set password = password('newpwd') where user = 'root'; flush privileges; 保存:3.打开命令行,输入:C:\mysql\bin\mysqld --init-file=C:\\mysql-init.txt --init-file 选项指向初始化的文件 如果MySQL

MySQL重置root密码

1.重置root密码: service mysql stop# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &# mysql -u root mysqlmysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';mysql> FLUSH PRIVILEGES;mysql> quit # /etc/init.d/m

批处理脚本为Mysql重置root密码(重置密码为123456)

@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

mysql 数据库几种修改密码的方式以及忘记密码处理办法

一.mysql修改密码方法: 1.使用mysqladmin修改 #mysqladmin -uroot -p password 'newpass' Enter password:  注:如果是第一次修改密码,提示Enter password: 直接回车即可     如果是重新设置密码,提示Enter password: 输入旧密码再回车 2.进入mysql进行密码修改 mysql> set password for 'root'@'127.0.0.1'=password('newpasswd');