mysql忘记root密码如何找回_通过skip-grant-tables重置密码

--skip-grant-tables 无效主因是未被 mysqld 实际加载,需通过 ps aux 确认启动命令;MySQL 8.0+ 必须用 ALTER USER 配合 FLUSH PRIVILEGES 修改密码,且需指定 mysql_native_password 插件避免认证失败。mysqld 启动时加 --skip-grant-tables 为什么没用常见现象是:改完配置、重启服务,mysql -u root 还是报 Access denied,或者压根连不上。根本原因通常是 mysqld 没真正用上这个参数------要么被 systemd 服务文件覆盖,要么被 my.cnf 里其他配置干扰。实操建议:先确认 mysqld 实际启动命令:ps aux | grep mysqld,看输出里有没有 --skip-grant-tables不要直接改 /etc/my.cnf 加 skip-grant-tables,它在较新 MySQL(8.0+)中已被弃用,改了也无效;必须通过命令行参数传入systemd 环境下,得临时覆盖服务配置:sudo systemctl edit mysql,新增 Service 段并写 ExecStart= 完整路径 + --skip-grant-tables --skip-networking--skip-networking 必须同时加,否则远程连接可能绕过权限检查,造成安全风险MySQL 8.0+ 重置 root 密码时 UPDATE user SET authentication_string=... 报错错误信息通常是:ERROR 1054 (42S22): Unknown column 'password' in 'field list' 或 ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement。前者是因为字段名变了,后者是因为你忘了先 FLUSH PRIVILEGES。实操建议:MySQL 5.7 用 password 字段,8.0+ 改成 authentication_string,且必须用 ALTER USER,不能直接 UPDATE进入后第一件事不是改密码,而是执行 FLUSH PRIVILEGES,否则权限系统没加载,所有 DML 都被拒绝正确操作顺序:FLUSH PRIVILEGES; → ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpass';如果提示 'root'@'localhost' 不存在,查 SELECT User,Host FROM mysql.user;,有些安装默认是 'root'@'127.0.0.1' 或 'root'@'%'重置完密码重启 mysqld,mysql -u root -p 仍连不上典型表现:输对密码也报 Access denied for user 'root'@'localhost'。问题往往出在认证插件不匹配,尤其是从旧版本升级或 Docker 镜像部署的实例。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。

相关推荐
青少儿编程课堂12 小时前
后缀自动机解析:本质不同子串与最长重复片段统计
c++·python·算法·bfs·信息学竞赛
南京码讯光电技术有限公司12 小时前
How to Design an Antenna System for an Industrial WiFi Module
数据库·人工智能
怕浪猫13 小时前
LLM 面试必问的 8 个问题,答不上来直接淘汰
人工智能·python·面试
lusklusklusk14 小时前
Oracle数据库基础之2_体系结构
数据库·oracle
老歌老听老掉牙14 小时前
从三维旋转的深度解析到Python实现:绕任意轴旋转的奥秘
python·三维旋转
可乐ea14 小时前
从第一性原理构建 AI Agent:提示词、工具、技能与记忆全解剖
数据库·人工智能·工具调用·ai智能体·提示词工程·agent开发·智能体记忆
打工仔折腾 AI14 小时前
工业场景下时序库与实时计算一体化架构选型实践对比
java·开发语言·后端·python·性能优化·架构·ai agent 实战
东方护航数据恢复(深圳)14 小时前
医疗案例:HIS/PACS 数据库页损坏修复,医院不停诊完成恢复【东方护航数据恢复深圳店】
数据库·数据恢复·医疗·二次开盘
梦幻精灵_cq14 小时前
sumdir——一个伪python.built-in的“术法”打造
python
lusklusklusk15 小时前
Oracle数据库基础之11_Duplicate和Dataguard和RAC
数据库·oracle