当前位置: 首页 > news >正文

详细分析linux中的MySql跳过密码验证以及Bug(图文)

目录

  • 1.问题所示
  • 2. 基本知识
  • 3. 解决方法
    • 3.1 跳过验证Bug
    • 3.2 设定初始密码

1.问题所示

在这里插入图片描述

发现密码验证错误,遗失密码

2. 基本知识

  1. 停止MySQL服务sudo systemctl stop mysql

  2. 以跳过权限表模式启动MySQLsudo mysqld_safe --skip-grant-tables &

  3. 登录MySQLmysql -u root

  4. 重置root用户密码:(不同版本不一,如果执行出错,可看下文)

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;
  1. 重新启动MySQL服务sudo systemctl start mysql

在这里插入图片描述

3. 解决方法

根据上述的基本知识操作进行演示,过程中可能会出现个别Bug

3.1 跳过验证Bug

跳过验证的时候,如果出现如下提示:

root@iZ7xv98hm4hq0dd3xv23vuZ:~# sudo mysqld_safe --skip-grant-tables &
[1] 720919
root@iZ7xv98hm4hq0dd3xv23vuZ:~# 2024-09-02T14:05:11.207426Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2024-09-02T14:05:11.233525Z mysqld_safe A mysqld process already exists[1]+  Exit 1                  sudo mysqld_safe --skip-grant-tables

截图如下:

在这里插入图片描述

先确保所有 MySQL 相关的进程都被停止:ps aux | grep mysqld

如果看到任何运行中的 MySQL 进程,使用 kill 或 kill -9 命令手动终止它们:sudo kill -9 <PID>

在这里插入图片描述

3.2 设定初始密码

使用的是 MySQL 5.7 或更高版本,密码字段通常是 authentication_string,但 PASSWORD() 函数可能已被弃用

UPDATE mysql.user SET authentication_string='123456' WHERE User='root' AND Host='localhost';

使用的是 MySQL 5.6 或更低版本,密码字段可能是 password,可以使用以下命令:

UPDATE mysql.user SET password=PASSWORD('123456') WHERE User='root' AND Host='localhost';

之后统一执行:`FLUSH PRIVILEGES;``

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Vue3+TypeScript+Vite+Less 开发 H5 项目(amfe-flexible + postcss-pxtorem)
  • MySQL数据的增删改查(二)
  • git update-ref
  • Axure科技感大屏系统设计:智慧农场管理平台
  • TDengine 签约寓信科技,推动智慧公寓的数字化转型
  • 升级VMware
  • 【计算机网络 - 基础问题】每日 3 题(一)
  • 【大模型专栏—实战篇】基于RAG从0到1搭建AI科研知识库
  • 原型模式:克隆对象的艺术
  • 如何训练机器学习力场
  • 绑定变量对于SQL性能的影响
  • 九、外观模式
  • android BLE 蓝牙的连接(二)
  • turbo译码算法MAX, MAX_SCALE and MAX_STAR的比较
  • 算法打卡:第九章 动态规划part13
  • ECMAScript入门(七)--Module语法
  • js操作时间(持续更新)
  • mac修复ab及siege安装
  • TypeScript迭代器
  • 阿里研究院入选中国企业智库系统影响力榜
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 排序算法学习笔记
  • 深度学习入门:10门免费线上课程推荐
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 我感觉这是史上最牛的防sql注入方法类
  • 协程
  • 一、python与pycharm的安装
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • 阿里云服务器购买完整流程
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • #1015 : KMP算法
  • #java学习笔记(面向对象)----(未完结)
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (1)虚拟机的安装与使用,linux系统安装
  • (16)Reactor的测试——响应式Spring的道法术器
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (JS基础)String 类型
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转)程序员技术练级攻略
  • (转)使用VMware vSphere标准交换机设置网络连接
  • *上位机的定义
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .bat文件调用java类的main方法
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .Net Core中Quartz的使用方法
  • .net 连接达梦数据库开发环境部署
  • .net6Api后台+uniapp导出Excel