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

重置 MySQL root 密码

引言

在linux可能存在安装mysql安装失败,一直不出现默认密码

/usr/local/mysql/mysql-8.0.26/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql --basedir=/usr/local/mysql/mysql-8.0.26 --datadir=/usr/local/mysql/mysql-8.0.26/data --lower-case-table-names=1 --initialize

一,可能存在下面情况:

1. 初始化未成功执行

如果你之前运行过 --initialize 命令但失败了(比如“data 目录不可用”),那么数据库里可能根本没有生成 root 用户和密码。

2. 忘记临时密码

MySQL 初始化时会生成一个临时密码并输出到控制台或日志文件。如果你当时没记录下来,又尝试使用错误的密码登录,就会出现这个错误。

3. 已经设置过 root 密码

如果你曾经修改过 root 密码,而现在忘记了,也会导致登录失败。


二,重置 MySQL root 密码

要解决这个问题,我们需要以“跳过权限验证”的方式启动 MySQL,然后手动修改 root 用户的密码。


步骤一:停止 MySQL(如果正在运行)

pkill mysqld

确认是否还有进程在运行:

ps aux | grep mysqld

如果有残留进程,使用 kill PID 杀掉它们。


步骤二:以 skip-grant-tables 模式启动 MySQL

/usr/local/mysql/mysql-8.0.26/bin/mysqld \--user=mysql \--basedir=/usr/local/mysql/mysql-8.0.26 \--datadir=/usr/local/mysql/mysql-8.0.26/data \--skip-grant-tables &

这个模式下不需要密码即可登录,并且可以修改用户权限。


风险

  • 跳过权限验证:意味着任何能访问数据库的人,都可以无密码登录并执行任意 SQL。
  • 数据安全隐患:如果服务器暴露在公网或多人共享环境,可能导致数据被篡改或删除。
  • 违反最小权限原则:不符合企业级系统安全管理规范。

步骤三:无密码登录 MySQL

/usr/local/mysql/mysql-8.0.26/bin/mysql -u root

这时你应该可以直接进入 MySQL shell,不需要输入密码。


步骤四:修改 root 用户密码

进入 MySQL 后,依次执行以下命令:

FLUSH PRIVILEGES;ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';exit;

替换 '你的新密码' 为你想设置的新密码。


步骤五:正常重启 MySQL

退出后,关闭当前的“免密模式”实例:

pkill mysqld

再以正常模式启动 MySQL:

/usr/local/mysql/mysql-8.0.26/bin/mysqld_safe --user=mysql &

或者使用 systemd(如果你已配置):

systemctl start mysql

步骤六:测试新密码登录

/usr/local/mysql/mysql-8.0.26/bin/mysql -u root -p

输入你刚才设置的新密码,应该就能成功登录了!


三,额外建议

查看初始化时生成的临时密码(可选)

如果你不确定初始化是否成功,可以查看 MySQL 日志文件(如 /usr/local/mysql/mysql-8.0.26/log/mysql.log)中是否有类似下面的内容:

A temporary password is generated for root@localhost: Abc123!@#def

设置开机自启(推荐)

将 MySQL 加入 systemd 管理,方便开机自启和日常维护。请参照 项目上线(若依前后分离版)


四,总结一句话

出现 “Access denied for user ‘root’@‘localhost’” 错误,通常是因为密码错误或初始化失败。可以通过 --skip-grant-tables 模式重置 root 密码来解决。在实际生产中,要

开始加水了!!!

http://www.lqws.cn/news/523405.html

相关文章:

  • 基于STM32的智能节能风扇的设计
  • KNN算法(K近邻算法)
  • K8s在centos7安装及kubectl
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | BackgroundSlider(背景滑块)
  • 设备维修全流程记录,提升设备运维效率
  • 前端面试专栏-主流框架:13.vue3组件通信与生命周期
  • 【MPC】实战:基于MPC的车辆自适应巡航控制 (ACC) 系统设计
  • 《大模型 Agent 应用实战指南》第2章:商业目标与 Agent 能力边界定义
  • APISIX
  • 智慧校园电子班牌系统源码的开发与应用,基于Java/SpringBoot后端、Vue2前端、MySQL5.7数据库
  • LeetCode 3298.统计重新排列后包含另一个字符串的子字符串数目2
  • 北斗导航 | 基于改进奇偶矢量法的CAT I精密进近RAIM算法
  • Spring Boot 系统开发:打造高效、稳定、可扩展的企业级应用
  • 渗透靶场:事件和属性被阻止的反射xss
  • [ linux-系统 ] 基础IO
  • 移除wordpress后台“评论”菜单的三种方法
  • 深入理解 Spring 框架的 Bean 管理与 IOC​
  • arthas助力Java程序Full GC频率大降!
  • 神经网络的运作方式类比讲解
  • TensorFlow Lite (TFLite) 和 PyTorch Mobile介绍2
  • 红外图像增强(dde):基于“基础层-细节层”分解的增强算法
  • 深入学习入门--(一)前备知识
  • 深度学习之分类手写数字的网络
  • 【Linux】Lniux基本指令(1)
  • Acrobat JavaScript 中的 util 对象
  • Windows下安装zookeeper
  • 玛哈特机械矫平机:精密制造的“应力消除师”与“平整度雕刻家”
  • 机器学习01
  • 鸿蒙 GridRow 与 GridCol 组件解析:响应式网格布局指南
  • 局域网环境下浏览器安全限制的实用方法