MySQL8版本密码重置(老版本skip-grant-tables不起作用,MySQL服务开启之后立马关闭)
MySQL密码重置思路
MySQL的密码是存放在user表里面的,修改密码其实就是修改表中记录。
重置的思路是是想办法不用密码进入系统,然后用数据库命令修改表user中的密码记录。
查了下,MySQL5系统在网上建议的方法是以--skip-grant-tables参数启动mysql服务,该参数指示在启动时不加载授权表,因此启动成功后root用户可以空密码登陆
mysqld –skip-grant-tables
登陆之后可以用
UPDATE user SET authentication_string='' WHERE user='root';
这类命令设置密码或者将密码置空。
但是,实测mysqld –skip-grant-tables这样的命令行,在mysql8中无法成功启动,而且测试了该参数放在ini文件里面也同样无法启动
MySQL8系统密码重置的两个思路
两条思路,或者用--init-file参数在服务启动时加载并运行修改密码的命令文件,该命令一旦执行,服务启动后密码即已经清除或者重置,启动服务后即可以空密码或指定密码登入。
或者继续研究–skip-grant-tables命令行参数下服务不能启动的原因,解决问题,然后启动服务后以空密码登入,手工输入命令,执行清除或者重置mysql.user表中的密码记录字段。
推荐使用前者。
具体操作流程如下:
方法一:利用--init-file参数解决
该参数指定服务启动时先执行一个包含sql命令文件,因此,只需要将重置密码的命令写在该文件中,以此参数指定启动时执行该命令,启动完成即可重置系统密码了。
第一步,关掉系统服务
net stop mysql
第二步,创建一个文本文件,内含一条密码修改命令
ALTER USER 'root'@'localhost' IDENTIFIED BY '';
第三步:命令行方式启动服务器,指定启动时执行上述的密码修改命令文件
mysqld --init-file=d:mysqlc.txt --console
具体操作截图
方法二,想办法让--skip-grant-tables参数用起来
同方法一,先关掉系统服务
实测,在mysql8系统下,用mysqld --console --skip-grant-tables --shared-memory可以无密码启动服务
服务启动后,以空密码登入系统
mysql.exe -u root
然后执行sql命令将root用户密码设置为空
UPDATE mysql.user SET authentication_string='' WHERE user='root' and host='localhost';
具体操作截图
MySQL8的一些特性导致老方法重置不大管用了,建议使用--init-file参数解决,实测安全可靠
MySQL8版本密码重置(老版本skip-grant-tables不起作用,MySQL服务开启之后立马关闭)的更多相关文章
- mysql 服务【安装】【启动】【停止】【卸载】【重置密码】
windows安装:一.一机安装多个服务时,重复步骤,修改服务名即可: 1.mysqld install mysql_12336 --defaults-file="MYSQL_HOME\my ...
- sybase SA密码重置
sa 密码忘记解决之道: su - sybase cd ASE/install vi RUN_etoh2 在文件的末尾加入 -psa \ 停止原数据库服务 由于密码遗忘,所以只能通过kill进程停止服 ...
- MySQL密码重置方法
MySQL数据库的安装和配置,配置Mysql按照bin目录到Path中 使用命令行窗口连接MYSQL数据库:mysql –u用户名 –p密码 对于密码的重置有以下两种方法(卸载重新安装当然也可以): ...
- mysql8版本以上重置密码
1.打开命令窗口cmd,输入命令:net stop mysql,停止MySQL服务, 2.开启跳过密码验证登录的MySQL服务, 输入命令 : mysqld --console --skip-gran ...
- MySQL忘记root密码重置密码(5.7版本)
网上找了一堆方法都不行,经过折腾一番,发现MySQL不同版本重置密码也存在一定的差异!记录下Mysql5.7.18版本的重置密码方法. 1.找到/etc/mysql/my.cnf 修改此文件添加一行s ...
- cenos下安装MySQL最新版(5.7.18)记录。附卸载老版本过程
首先说明:老版本数据库没有数据,所以无数据备份过程.如果你在升级数据库过程里,需要备份数据,请另外自行处理. 1.下载最新版MySQL.解压待用 wget https://dev.mysql.com/ ...
- Mysql8.0.11win64重置root用户密码操作
在笔记本和PC上面使用Mysql8.0.11免安装版本,均遇到此问题,记性不太好,现做下笔记. 1.cmd下,先关掉已启动的mysql服务,使用命令:net stop mysql 2.步骤1的cmd窗 ...
- 如何给不支持新特性的浏览器打补丁(让老版本IE兼容新特性)
一个非常棒的 JavaScript 框架叫做 Modernizr(http://www.modernizr. com),用于向缺少 HTML5/CSS3特性支持的浏览器打补丁.由 Alexander ...
- 较老版本的AFNetworking使用心得
较老版本的 AFNetworking 下载链接 ( http://pan.baidu.com/s/14Cxga ) 将压缩包中的文件夹拖入xcode工程项目中并引入如下的框架 简单的 JOSN 解析例 ...
随机推荐
- 一、PyTorch 入门实战—Tensor(转)
目录 一.Tensor的创建和使用 二.Tensor放到GPU上执行 三.Tensor总结 一.Tensor的创建和使用 1.概念和TensorFlow的是基本一致的,只是代码编写格式的不同.我们声明 ...
- 【iOS】iOS main() 简介
C 语言编写的程序,其执行入口都是 main(). 用 Objective-C 语言编写的程序也是这样. main.m 中的代码如下: int main(int argc, char * argv[] ...
- 【iOS】libc++abi.dylib: terminate_handler unexpectedly threw an exception
用 ShareSDK 做第三方分享的时候遇到了这个问题…… 联系了客服,后来在他的指导下,发现是数组的问题,该问题不知道是否具有通用性,暂且记下.
- go杂货铺
json序列化 内存中变成可存储或传输的过程称之为序列化(dict,split,struct转string) package main import ( "encoding/json&quo ...
- codeforces 576 div2 A-D题解
A题 Description 题目链接: https://codeforces.com/contest/1199/problem/A 题意: 给定长度为n(1≤n≤100000)的一个序列a,以及两个 ...
- 有容云:上车 | 听老司机谈Docker安全合规建设
编者注: 本文根据7月19日DockOne社群分享内容整理而成,分享嘉宾蒋运龙,有容云高级咨询顾问,一个IT的老兵,十年来混迹于存储.三网融合.多屏互动.智能穿戴.第三方支付.Docker等行业:经历 ...
- 教老婆学Linux运维(一)初识Linux
零.前言 之一 为什么写这个系列?为什么是Linux? 老婆自从怀孕以后,辞职在家待了好几年了,现在时常感觉与社会脱节.所以想找个工作. 做了多年程序员,有点人脉也都基本是在IT圈子里,只能帮忙找找I ...
- [NUnit] discover test finished: 0 found issue
%Temp%\VisualStudioTestExplorerExtensions & restart visual studio
- Pandas 库之 DataFrame
How to use DataFrame ? 简介 创建 DataFrame 查看与筛选数据:行列选取 DataFrame 数据操作:增删改 一.About DataFrame DataFrame 是 ...
- vi编辑器基础指令
vi -- 终端中的编辑器 visual interface ssh-- secure shell vim vi improved-----------------------------打开和新建文 ...