【Mysql密码管理】-【管理员密码已知、未知(忘记密码)、破解】

一、重置mysql root密码(密码已知)

在已知MYSQL数据库的ROOT用户密码的情况下,修改密码的方法

1.在SHELL环境下,使用mysqladmin命令设置:
mysqladmin –u root –p password “新密码” 回车后要求输入旧密码

2.在mysql5.7>环境中实用第二条,使用update命令,直接更新mysql库user表的数据:(其他版本数据库直接查看user表中password表头)

Update  mysql.user  set  password=password(‘新密码’)  where  user=’root’;
flush   privileges;
Update  mysql.user  set  authentication_string=password('thispasswd1.')  where  user='root';
flush   privileges;

3.使用grant命令,修改root用户的授权权限。

grant  all  on  *.*  to   root@'localhost'  identified  by  '新thispasswd1.';
show grants;

二、如忘记了mysql数据库的ROOT用户的密码,又如何做呢?方法如下:

1.关闭当前运行的mysqld服务程序:service mysqld stop
2.使用mysqld_safe脚本以安全模式(不加载授权表)启动mysqld 服务

/usr/local/mysql/bin/mysqld_safe  --skip-grant-table  &

3.使用空密码的root用户登录数据库,重新设置ROOT用户的密码
# mysql -u root

Update  mysql.user  set  password=password(‘新密码’)  where  user=’root’;
flush   privileges;

三、破解线下服务器root密码 (原理同上)

1)修改运行参数并重启服务
如果修改了密码策略必须恢复为默认的默默策略,不然服务无法跳过授权表启动

[root@host ~]# vim /etc/my.cnf
[mysqld]
skip-grant-tables  #逃过授权表
#validate_password_length = 6   //注释掉
#validate_password_policy = 0   //注释掉
:wq
[root@host ~]# systemctl  restart mysqld    //重启服务[root@host ~]# mysql    //无密码登录
mysql> update mysql.user set  authentication_string=password("123qqq...A")-> where user="root" and host="localhost";  //修改root用户本机登录密码(要符合默认的密码策略)
mysql> flush privileges;  //让修改生效
####还原配置文件(注释跳过授权表)并重启服务
[root@host ~]#  vim  /etc/my.cnf

四、破解线上服务器root密码(线上服务器的服务是不允许随便重启的)[内容转自网络]

1)拷贝管理员能正常登录的数据库服务器的MySQL库覆盖本机的mysql库
把host51主机的mysql库拷贝给host50主机
[root@host50 ~]# scp -r root@192.168.4.51:/var/lib/mysql/mysql /var/lib/mysql/

2)重新加载数据

[root@host50 ~]# which  pstree  || yum -y install psmisc   安装pstree命令软件
/usr/bin/pstree[root@host50 ~]# pstree -p | grep   mysqld  | head  -1   查看父进程pid号|-mysqld(20261)-+-{mysqld}(20262)[root@host50 ~]# kill  -SIGHUP 20261    发送信号给进程

3)使用和host51主机一样的密码连接服务

[root@host50 ~]# mysql -uroot -pNSD123...a    密码登录

本文链接:https://my.lmcjl.com/post/6702.html

展开阅读全文

4 评论

留下您的评论.