news 2026/5/22 4:28:53

MySQL 5.7 重置 root 密码完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL 5.7 重置 root 密码完整指南

MySQL 5.7 重置 root 密码完整指南

当忘记 MySQL root 密码或无法登录时,按以下步骤重置密码。

方法一:跳过授权表重置密码(推荐)

步骤 1:停止 MySQL 服务

# 停止 MySQLsystemctl stop mysqld# 确认 MySQL 已停止systemctl status mysqld

步骤 2:跳过授权表启动 MySQL

# 方法A:使用 mysqld_safe(推荐)mysqld_safe --skip-grant-tables --skip-networking&# 方法B:直接使用 mysqld/usr/sbin/mysqld --skip-grant-tables --skip-networking&

步骤 3:无密码登录 MySQL

# 直接回车登录(不需要密码)mysql-uroot

步骤 4:清空 root 密码

-- 切换到 mysql 数据库USEmysql;-- 查看当前 root 用户信息SELECTuser,host,authentication_stringFROMuserWHEREuser='root';-- 清空 root 密码(MySQL 5.7)UPDATEuserSETauthentication_string=''WHEREuser='root';-- 或者使用(更安全的方式)UPDATEuserSETauthentication_string='',password_expired='N'WHEREuser='root';-- 刷新权限FLUSHPRIVILEGES;-- 退出EXIT;

步骤 5:重启 MySQL 服务

# 停止跳过授权的 MySQL 进程pkillmysqld# 或killallmysqld# 正常启动 MySQLsystemctl start mysqld# 检查启动状态systemctl status mysqld

步骤 6:设置新密码

# 无密码登录mysql-uroot
-- 设置新密码(注意密码强度要求)ALTERUSER'root'@'localhost'IDENTIFIEDBY'YourNewStrongPassword123!@#';-- 或使用旧语法SETPASSWORDFOR'root'@'localhost'=PASSWORD('YourNewStrongPassword123!@#');-- 刷新权限FLUSHPRIVILEGES;-- 退出EXIT;

步骤 7:测试新密码

# 使用新密码登录测试mysql-uroot-p# 输入刚设置的新密码

方法二:使用 init-file 重置密码

步骤 1:创建密码重置 SQL 文件

# 创建 SQL 文件cat>/tmp/reset_mysql_root.sql<<'EOF' ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword123!@#'; FLUSH PRIVILEGES; EOF

步骤 2:停止 MySQL 服务

systemctl stop mysqld

步骤 3:使用 init-file 启动 MySQL

# 启动 MySQL 并执行 init-filemysqld_safe --init-file=/tmp/reset_mysql_root.sql&# 等待几秒让 MySQL 启动sleep5

步骤 4:正常重启 MySQL

# 停止当前 MySQLpkillmysqld# 正常启动systemctl start mysqld

步骤 5:测试新密码

mysql-uroot-p# 输入新密码

方法三:修改配置文件跳过密码验证

步骤 1:编辑 MySQL 配置文件

vim/etc/my.cnf

步骤 2:在 [mysqld] 段添加配置

[mysqld] skip-grant-tables # 可选:跳过网络连接,更安全 skip-networking

步骤 3:重启 MySQL

systemctl restart mysqld

步骤 4:无密码登录并修改密码

# 登录mysql-uroot
-- 切换数据库USEmysql;-- 清空密码(MySQL 5.7)UPDATEuserSETauthentication_string=''WHEREuser='root';-- 刷新权限FLUSHPRIVILEGES;-- 退出EXIT;

步骤 5:移除配置文件中的跳过权限设置

# 编辑配置文件,注释或删除 skip-grant-tablesvim/etc/my.cnf# 修改后重启 MySQLsystemctl restart mysqld

步骤 6:设置新密码

# 无密码登录mysql-uroot
-- 设置新密码ALTERUSER'root'@'localhost'IDENTIFIEDBY'YourNewStrongPassword123!@#';FLUSHPRIVILEGES;EXIT;

处理密码强度策略问题

如果设置密码时遇到 “Your password does not satisfy the current policy requirements” 错误:

临时降低密码策略

-- 登录 MySQL 后执行SETGLOBALvalidate_password_policy=LOW;SETGLOBALvalidate_password_length=6;-- 然后重新设置密码ALTERUSER'root'@'localhost'IDENTIFIEDBY'123456';

永久修改密码策略(可选)

# 编辑配置文件vim/etc/my.cnf# 在 [mysqld] 段添加[mysqld]validate_password_policy=LOWvalidate_password_length=6# 重启 MySQLsystemctl restart mysqld

创建项目专用用户(推荐)

重置 root 密码后,建议创建项目专用用户:

-- 创建数据库CREATEDATABASEthinkphp_dbCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;-- 创建项目用户CREATEUSER'tp_user'@'localhost'IDENTIFIEDBY'Tp@Passw0rd2024!';-- 授予权限GRANTALLPRIVILEGESONthinkphp_db.*TO'tp_user'@'localhost';-- 刷新权限FLUSHPRIVILEGES;-- 验证SHOWGRANTSFOR'tp_user'@'localhost';

验证密码重置成功

# 1. 测试 root 登录mysql-uroot-p-e"SELECT VERSION();"# 2. 测试项目用户登录mysql-utp_user-p-e"SHOW DATABASES;"# 3. 查看 MySQL 状态systemctl status mysqld# 4. 查看错误日志(如有问题)tail-f/var/log/mysqld.log

常见问题排查

问题可能原因解决方案
启动失败端口被占用netstat -tlnp | grep 3306检查端口
无法连接MySQL 未启动systemctl start mysqld
权限错误SELinux 阻止setenforce 0临时关闭测试
密码仍无效缓存问题FLUSH PRIVILEGES;后重启 MySQL

完整重置脚本(一键执行)

#!/bin/bash# MySQL 5.7 一键重置密码脚本# 停止 MySQLsystemctl stop mysqld# 跳过授权表启动mysqld_safe --skip-grant-tables --skip-networking&# 等待启动sleep3# 清空密码mysql-uroot<<EOF USE mysql; UPDATE user SET authentication_string='' WHERE user='root'; FLUSH PRIVILEGES; EOF# 停止跳过授权进程pkillmysqldsleep2# 正常启动systemctl start mysqldsleep2# 设置新密码NEW_PASSWORD="YourNewStrongPassword123!@#"mysql-uroot<<EOF ALTER USER 'root'@'localhost' IDENTIFIED BY '${NEW_PASSWORD}'; FLUSH PRIVILEGES; EOFecho"密码已重置为:${NEW_PASSWORD}"echo"请使用新密码登录: mysql -u root -p"

保存为reset_mysql.sh,执行:

chmod+x reset_mysql.sh ./reset_mysql.sh
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/1 17:58:34

2026年,探寻市场口碑佳的高压电磁阀靠谱工厂

在当今快速发展的工业领域&#xff0c;高压电磁阀作为关键的流体控制元件&#xff0c;其性能和可靠性直接关系到生产的安全与效率。随着技术的不断进步&#xff0c;市场对高压电磁阀的要求也越来越高。那么&#xff0c;在众多厂家中&#xff0c;哪家工厂能够提供最优质的高压电…

作者头像 李华
网站建设 2026/4/1 17:57:36

地理计算引擎GeographicLib全解析:从场景应用到算法原理

地理计算引擎GeographicLib全解析&#xff1a;从场景应用到算法原理 【免费下载链接】geographiclib Main repository for GeographicLib 项目地址: https://gitcode.com/gh_mirrors/ge/geographiclib 一、核心场景应用解析&#xff1a;解决真实世界地理难题 在航海导航…

作者头像 李华
网站建设 2026/5/13 7:33:40

从电话网到互联网:三种数据交换技术演进与实战选型指南

1. 从电话线到光纤&#xff1a;数据交换技术的前世今生 记得小时候家里装第一部固定电话时&#xff0c;师傅拉了一整天的线&#xff0c;那时候完全不明白为什么打个电话要这么麻烦。直到后来学了计算机网络才知道&#xff0c;这背后藏着通信领域最基础的技术之一——电路交换。…

作者头像 李华
网站建设 2026/4/1 17:55:49

私有化部署视频高清直播点播系统/私有化视频会议解决方案EasyDSS在政务融媒体平台视频直播/视频会议场景中的应用解析

在数字化转型的浪潮中&#xff0c;政务直播已成为政府信息公开、政策解读、应急指挥的“标配”。从“两会”盛况的实时传递&#xff0c;到基层政策宣讲的“云端对话”&#xff0c;一块小小的屏幕&#xff0c;承载的是民众对政府透明度的期待。过去&#xff0c;部分政务直播依赖…

作者头像 李华
网站建设 2026/4/1 17:54:37

CLIP ViT-H-14 RESTful API调用详解:Python请求示例+返回结构参数说明

CLIP ViT-H-14 RESTful API调用详解&#xff1a;Python请求示例返回结构参数说明 1. 服务概述 CLIP ViT-H-14图像编码服务是基于laion2B-s32B-b79K预训练模型构建的特征提取服务&#xff0c;提供高效的图像特征向量生成能力。该服务支持RESTful API调用和Web界面交互&#xf…

作者头像 李华