当前位置: 首页 > 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 密码来解决。在实际生产中,要

开始加水了!!!

相关文章:

  • 合肥品牌网站店铺100个关键词
  • 金山区网站制作seo网站优化软件
  • 网站优化建设山东教育培训机构推荐
  • 像芥末堆做内容的网站济南头条今日新闻
  • 澄海玩具网站建设公司手机建站平台
  • 购物网站线下推广方案模板建站教程
  • 前端面试专栏-主流框架:13.vue3组件通信与生命周期
  • webman 利用tcp 做服务端 对接物联网
  • C# LINQ语法
  • Boss:攻击
  • 【MQTT】常见问题
  • MySQL之视图深度解析
  • 第2章,[标签 Win32] :编写兼容多字节字符集和 Unicode 字符集的 Windows 程序
  • 【DevTools浏览器开发者工具反调试之无限Debugger跳过】
  • SpringBoot高校党务系统
  • PyTorch RNN实战:快速上手教程
  • Python 数据分析与可视化 Day 7 - 可视化整合报告实战
  • Python核心可视化库:Matplotlib与Seaborn深度解析
  • request这个包中,get 这个方法里传入的是params ,post这个方法里传入的是data 和 json。这个区别是什么?
  • pscc系统如何部署,怎么更安全更便捷?
  • Linux 怎么恢复sshd.service
  • 结构体数组与Excel表格:数据库世界的理性与感性
  • 超级好用的小软件:geek,卸载软件,2m大小
  • Webpack 核心概念
  • 基于MATLAB的BP神经网络的心电图分类方法应用
  • Web后端基础:Java操作数据库----JDBC