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进行登录了