服务器MySQL密码忘了怎么办?,root密码忘记如何重置?

忘记服务器 MySQL 密码不用重装数据库,Linux 下停掉服务、用跳过权限表的方式启动、改掉 root 密码再恢复正常启动,多数情况下十分钟左右就能解决。真正容易踩坑的地方不在命令本身,而在版本差异、改完之后应用配置没同步,以及忘记把临时开启的跳过权限参数关掉。

先判断你面对的是哪一类 MySQL 环境

同样叫“MySQL 密码忘了”,处理路径完全不同,动手前先对号入座,能少走很多弯路。

mysql忘记root密码,重置root密码
加载中
mysql忘记root密码,重置root密码
w
wumugo
3.5万--
原视频地址
  • 自建 Linux MySQL:有 SSH 和 root 权限,可以用 skip-grant-tables 或 --init-file 重置。
  • Windows Server 自建 MySQL:通过服务管理器停止服务,再用 mysqld --skip-grant-tables 启动。
  • 宝塔面板环境:面板本身有数据库管理入口,优先在面板里改 root 密码。
  • 云数据库 RDS:控制台提供重置密码功能,不需要登录服务器操作。
  • Docker 跑的 MySQL:要先进容器或挂载初始化脚本,不能直接套用宿主机命令。

先执行 mysql --version 看清版本号,MySQL 5.7 和 8.0 在改密语句、认证插件上差别不小,拿 5.7 的写法去改 8.0,很容易报语法错误。

Linux 服务器 MySQL root 密码忘记怎么重置

这是最常见的场景,整体思路是让数据库在不校验密码的状态下启动,改完密码再恢复正常启动。

停服务并做好备份

先停掉 MySQL 服务,避免数据文件在异常状态下被反复读写。

systemctl stop mysqld
# 部分系统服务名是 mysql
systemctl stop mysql

有条件的话,先把数据目录复制一份,/var/lib/mysql,重置密码本身不动数据,但生产环境留个退路总没错。

用跳过权限表的方式启动

编辑配置文件 /etc/my.cnf,在 [mysqld] 段落下加一行:

skip-grant-tables
skip-networking

skip-networking 的作用是只允许本机 socket 连接,防止重置期间外部有人连进来,保存后启动服务:

systemctl start mysqld
mysql -uroot

此时应该能直接进入 MySQL 命令行,不需要密码。

按版本执行改密语句

MySQL 5.7 的写法:

UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;

MySQL 8.0 的写法:在 skip-grant-tables 模式下直接执行 ALTER USER 可能报错,稳妥做法是先清空认证字符串,退出重启后再改。

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

退出 MySQL,删掉配置文件里的 skip-grant-tables 和 skip-networking,重启服务后用空密码登录,再执行:

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

如果服务器开了 validate_password 插件,新密码太简单会被拒绝,这时要么换一个符合策略的密码,要么先临时调低策略再改。

验证并恢复

用 mysql -uroot -p 输入新密码登录,能进就说明重置成功,再执行 SHOW VARIABLES LIKE 'skip_networking'; 确认临时参数已经失效。

MySQL 8.0 忘记密码跳过权限表怎么操作更稳

0 的权限表结构和认证插件都变了,skip-grant-tables 下改密容易遇到“不能使用 ALTER USER”的提示,更推荐用 --init-file 方式,让数据库在启动时自动执行一条改密语句。

第一步,创建一个初始化 SQL 文件:

vi /root/mysql-init.sql

写一行:

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

第二步,收紧文件权限并交给 mysql 用户:

chmod 600 /root/mysql-init.sql
chown mysql:mysql /root/mysql-init.sql

第三步,停掉服务,用初始化文件启动:

systemctl stop mysqld
mysqld --init-file=/root/mysql-init.sql --user=mysql &

启动完成后,新密码已经生效,删掉初始化文件,正常重启服务即可:

rm -f /root/mysql-init.sql
systemctl restart mysqld

这个方法的优点是全程不需要开放无密码登录窗口,生产环境更安全,缺点是对文件路径和属主要求严格,路径写错或权限不对,MySQL 会启动失败,记得看 /var/log/mysqld.log 里的报错。

MySQL 5.7 和 8.0 忘记密码重置差异对比

对比项 MySQL 5.7 MySQL 8.0
默认认证插件 mysql_native_password caching_sha2_password
改密常用语句 UPDATE mysql.user SET authentication_string=PASSWORD() ALTER USER ... IDENTIFIED BY
跳过权限表下能否直接 ALTER USER 一般可用 UPDATE 方式 容易受限,推荐 --init-file
密码策略插件 validate_password validate_password 组件
配置文件常见路径 /etc/my.cnf /etc/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf

行业共识认为,8.0 之后“改密码”这件事不只是换字符串,还要考虑认证插件与客户端驱动的兼容性,老项目连 8.0 报 Authentication plugin 'caching_sha2_password' cannot be loaded,往往就是插件没对齐。

宝塔面板和云服务器 MySQL 密码忘了怎么处理

宝塔面板环境优先用面板改

宝塔的数据库管理页面提供 root 密码修改入口,登录面板后进入“数据库”,找到 root 用户那一行,直接点修改即可,面板有本地权限,不需要走跳过权限表流程。

如果面板也进不去,才考虑用 SSH 按前面的 Linux 通用方法操作,改完之后回到面板的数据库页面确认密码状态,避免面板里存的还是旧密码。

云服务器自建库和云数据库要分开看

买的是云服务器、MySQL 自己装的,控制台不提供“重置数据库密码”按钮,只能通过 SSH 或 VNC 登录系统操作,方法和普通 Linux 一样。

买的是云数据库 RDS,直接在控制台的实例管理里点“重置密码”,按提示操作即可,通常即时生效,这类托管服务不开放系统层权限,别去套 skip-grant-tables。

找人重置大概要花多少钱

如果自己不方便操作,市场上代运维重置 MySQL 密码的价格从几十元到数百元不等,具体看环境复杂度和是否包含数据备份,价格不是关键,关键是别把 root 权限和数据库端口直接交给陌生人,稳妥做法是先打快照、临时改安全组只放行自己的 IP,处理完再恢复。

改完密码必须做的四件事

  • 删除临时初始化文件,确认 my.cnf 里的 skip-grant-tables 已移除。
  • 同步应用配置,WordPress 看 wp-config.php,Laravel 看 .env,ThinkPHP 看 database.php,改完重启 PHP-FPM 或应用进程。
  • 检查远程 root 账号,执行 SELECT User,Host FROM mysql.user;,确认没有多余的 root@%。
  • 更新密码保管方式,用密码管理器或配置中心存,别再靠记忆。

据工信部相关安全提示,数据库弱口令和默认口令一直是网络攻击的高频入口,密码重置不是终点,顺手把远程访问白名单和备份策略一起检查,才算真正收尾。

修改服务器 MySQL 密码忘记相关问答

忘记 MySQL 密码可以直接重装数据库吗

不建议,重装会清空数据目录,原有库表全部丢失,只要数据文件还在,密码都能通过跳过权限表或初始化文件的方式重置,重装应该是数据已经损坏且无法恢复时的最后手段。

修改服务器 MySQL 密码会影响正在运行的网站吗

会,数据库密码变了,应用配置里还是旧密码,网站就会报“数据库连接失败”,所以改密要和配置文件同步进行,改完立即重启 Web 服务,主从架构还要同步更新复制账号的密码,否则主从同步会中断。

重置后仍然提示 Access denied 怎么办

先确认连接的主机名和账号匹配,MySQL 的账号是 用户名@主机 组合,改的是 root@localhost,应用却从远程连 root@%,密码对了也会被拒,再看认证插件是否匹配,最后检查应用是否读到了新的配置文件,PHP 的 opcache 或容器环境变量都可能让旧配置继续生效。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/778710.html

赞 (0)
上一篇 2026年11月1日 01:08
下一篇 2026年11月1日 01:08

相关推荐

  • 服务器hosts文件位置在哪?Win系统hosts文件路径详解

    服务器hosts文件的核心位置统一存储于系统驱动器的特定目录下,不同操作系统遵循相似的层级逻辑,但路径表达方式因系统架构差异而略有不同,掌握该文件的精准路径,是进行域名解析配置、网络环境调试以及服务器权限管理的首要前提, 无论服务器运行的是Windows、Linux还是macOS系统,hosts文件始终扮演着本……

    2026年4月10日
    7800
  • Excel基础大全都包括哪些核心知识点,怎么学?

    Excel基础大全不是简单罗列功能,而是帮你构建系统性的数据处理能力,它的核心是表格制作、公式函数与数据透视表这三大支柱, 无论你是学生还是职场人,掌握这些基础就能轻松应对80%的数据工作,Excel基础教程新手入门:从零开始认识Excel刚接触Excel时,最先要搞懂的是它的工作界面和基本操作逻辑,功能区、编……

    2026年7月20日
    600
  • 我的世界2b2t服务器和平旗帜怎么制作,需要什么材料

    在2b2t服务器中,和平旗帜并非官方机制,而是玩家主动设计的标志性旗帜,制作方法与普通Minecraft旗帜完全一致,关键在于图案设计和放置策略,2b2t和平旗帜制作方法:从材料到放置全流程和平旗帜在2b2t中更多是一种象征,但制作过程本身与单机或其它服务器无异,下面按步骤拆解,每一步都包含可验证的操作细节,准……

    2026年7月30日
    1200
  • ASP与Web技术有何本质区别?为何两者应用场景大相径庭?

    ASP与Web的区别主要体现在技术定位与实现方式上:ASP是一种基于服务器的动态网页技术,而Web是一个涵盖网站架构、协议和应用生态的广义概念,ASP是构建动态Web应用的具体工具之一,而Web则是ASP所服务的整体环境,核心定义与范畴差异ASP(Active Server Pages) 是由微软开发的服务器端……

    2026年2月3日
    12930
  • AlphaVPS大硬盘VPS好用吗,欧美多机房VPS推荐

    AlphaVPS凭借€19.99起的年付低价与多机房优势,成为追求高性价比存储型VPS用户的理想选择,尤其适合需要大量本地存储资源的个人站长和数据备份场景,在云计算服务日益内卷的当下,寻找一款既便宜又能提供大硬盘空间的VPS并非易事,许多用户往往陷入“低价无好货”或“好货太贵”的两难境地,AlphaVPS的出现……

    2026年7月4日
    14100
  • AI应用部署促销活动有哪些优惠,怎么参加最划算?

    企业数字化转型已进入深水区,人工智能不再是锦上添花的实验性工具,而是决定业务生死存亡的核心生产力,高昂的算力成本、复杂的运维环境以及技术人才的短缺,构成了阻碍AI落地的“三座大山”,在此背景下,抓住AI应用部署促销活动的窗口期,不仅是降低财务支出的战术动作,更是加速业务落地、抢占市场先机的战略选择,通过合理利用……

    2026年2月19日
    17100
  • asp上一条代码是什么?揭秘其功能和实现原理

    ASP(Active Server Pages)是一种由微软开发的服务器端脚本环境,用于创建动态交互式网页,它允许开发者将HTML、脚本命令和COM组件结合,生成功能丰富的Web应用程序,下面将详细解析ASP的核心概念、工作原理、应用场景及优化方案,帮助您全面掌握这一技术,ASP的基本概念与工作原理ASP基于服……

    2026年2月4日
    13610
  • QQ收藏文件未上传服务器如何恢复,怎么办

    如果你的QQ收藏提示“该文件未上传服务器”,这指的是文件只存在于本地缓存而云端没有副本,绝大多数情况下可以恢复上传,关键在于先区分“断网导致的上传中断”和“缓存文件已丢失”这两种状态,前者只需切换网络重新触发同步即可,后者则需要找到本地缓存路径手动处理,首先判断文件是“没传上去”还是“传丢了”打开QQ收藏界面……

    2026年9月9日
    400
  • 光模块与网线选型为何影响端口利用率?,有哪些坑?

    光口与电口速率、封装、双工和线缆类别不匹配时,端口会降速、频繁重启甚至直接down,实际吞吐远低于线速;先对齐端口能力、传输距离和业务带宽,再用光模块补长距、用Cat6A或DAC补短距,端口利用率才不会被选型拖住,端口利用率不是“通不通”,而是“跑到多少”端口利用率的真实口径端口利用率不是看link灯亮不亮,而……

    程序编程 2026年10月25日
    000
  • h2数据库在linux服务器怎么用,安装配置步骤详解

    在Linux服务器上使用H2数据库,核心思路是下载jar包后通过java -jar命令启动,支持嵌入模式和服务器模式,配合可视化控制台即可完成日常管理,对于很多Java开发者来说,H2数据库是个轻量级的“口袋数据库”,它不需要单独安装服务端程序,一个jar包就能跑起来,特别适合测试环境、小型应用或者嵌入式场景……

    2026年9月2日
    600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注