要求:
1、必须可以登录到mysql所在的服务器上
2、数据库需要重启
1、远程登录上mysql所在服务器

2、检查mysql服务是否正常运行

3、停止mysql运行
[root@mysql ~]# systemctl stop mysqld4、以安全模式启动MySQL(禁止网络连接)

mysqld --skip-grant-tables --skip-networking --user=mysql参数介绍:
--skip-grant-tables
核心作用:跳过MySQL的权限系统验证
启动时不加载权限表(mysql.user等)
任何用户都可以不需要密码连接MySQL
主要用于忘记root密码时进行密码重置
--skip-networking
安全保护措施:禁止网络连接
只允许本地连接(通过socket文件)
防止外部用户利用
--skip-grant-tables状态进行未授权访问增强安全性,避免在密码重置期间被攻击
--user=mysql
指定运行用户:以mysql系统用户身份运行
MySQL服务通常创建专门的系统账户(如mysql)
确保MySQL进程以正确的权限运行
避免使用root系统账户运行MySQL服务(安全最佳实践)
备注:如果单台机器运行了多个数据库还需要其它参数:
--port 端口号
--datadir 数据路径
--socket 该实例socket文件(正常关闭可能没有这个文件)
--defaults-file mysql配置文件路径
5、连接mysql

6、重置密码

flush privileges;
alter user 'root'@'localhost' identified by 'qazwsxQAZWSX.';
flush privileges;7、关闭mysql服务

# 查询mysql进程ID号
ps aux |grep mysql
# 杀掉mysql的id号
kill ID号8、正常启动mysql服务

# 启动mysql服务
systemctl start mysqld
systemctl status mysqld9、再次尝试正常登录数据库
