Linux下MySQL忘记root密码怎么办

发布网友 发布时间:2022-02-26 11:25

我来回答

3个回答

懂视网 时间:2022-02-26 15:46

操作系统: centos7

设备型号:ThinkPad E15

实验环境:开启一台Centos7系统

首先重启服务器,在启动时,进入如下界面,选择第一项,按下e键进行编辑

#进入编辑模式后会看到这些信息。找到“Linux16”开头的行,在Linux16的行尾空格后添加“rd.break”

改完之后,按下Ctrl+X进入紧急模式

原理:打断系统正常启动,然后进一个bash环境,系统并没有真正的启动

emergency   [i?m?:d??nsi]  紧急

查看系统根挂载情况:

发现是只读的。需要重新以rw方式挂载/sysroot 。

mount -o remount,rw /sysroot      #重新挂载,使其拥有读写权限

使用chroot命令换根,修改密码

chroot命令可以切换文件系统的根。

执行: chroot /sysroot/ 

输入:LANG=en  #修改语言环境为英文,如果是中文会显示乱码

执行passwd 开始修改密码

执行命令: touch  /.autorelabel  ,创建/.autorelabel新文件。

这步操作的作用是:告诉selinux在系统重启时自动重新标记文件系统的selinux策略。

总结:

1. 在系统启动引导界面后按e进行编辑

2. 找到“Linux16”开头的行,在行尾输入空格后添加“rd.break”

3. 按下Ctrl+X进入紧急模式

4. 重新挂载文件系统拥有读写权限

5. chroot修改根目录为/sysroot/

6. 通过passwd root命令修改root用户密码

7. 创建文件touch /.autorelabel

8. reboot重启系统

 


热心网友 时间:2022-02-26 12:54

1、需要root账号登录系统,不用登录mysql;

2、修改/etc/my.cnf,在[mysqld]的段中加:skip-grant-tables
3、重新启动mysqld:/etc/init.d/mysqld restart
4、现在可以修改MySQLroot密码 :
/usr/bin/mysql
mysql> USE mysql ;

mysql> UPDATE user SET Password = password ( 'new-password' ) WHERE User =
'root' ;
mysql> flush privileges ;
mysql> quit
5、将MySQL的登录设置修改回来
# vi
/etc/my.cnf
[mysqld]的段中的skip-grant-tables删除
保存并且退出vi,重启mysql

热心网友 时间:2022-02-26 14:12

1、修改MySQL的登录设置:
在[mysqld]的段中加上的skip-grant-tables
# sed -i '/mysqld/a\skip-grant-tables ' /etc/my.cnf
2、重新启动mysqld
# service mysqld restart
Shutting down MySQL. SUCCESS!
Starting MySQL. SUCCESS!
3、登录并修改MySQL的root密码
# /usr/bin/mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.19 Source distribution
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
mysql> USE mysql ;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> UPDATE user SET Password = password ( 'linuxidc' ) WHERE User = 'root' ;
Query OK, 3 rows affected (0.01 sec)
Rows matched: 3 Changed: 3 Warnings: 0

mysql> flush privileges ;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
4、将MySQL的登录设置修改回来
将刚才在[mysqld]的段中加上的skip-grant-tables删除
# sed -i "/skip-grant-tables/d" /etc/my.cnf
5、重新启动mysqld
# service mysqld restart
Shutting down MySQL. SUCCESS!
Starting MySQL. SUCCESS!
这个时候,就可以使用root/linuxidc进行登录了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com