MySQL密码破解。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL密码破解。相关的知识,希望对你有一定的参考价值。

  与其说是mysql密码破解倒不如说是mysql密码重置更准确,因为大多数情况下我们只是忘了登录的密码,如果是普通用户还可以让管理员重新设置一下密码或者重新分配一个用户,但是这里我们不考虑普通用户,如果是管理员密码忘了怎么办?找回是不可能了,虽然mysql中user表中记录了每个用户的信息,但是普通用户一般也没有权限操作,而且其中密码是通过单向加密生成。所以对于管理员密码遗忘,最简单的方法就是重置了。

  这里分两种情况分析linux下和windows下

linux操作系统下:

mysql版本5.5

1.修改MySQL配置文件

vim /etc/my.cnf

找到和mysql服务器配置相关部分[mysqld],在最后加上skip-grant-tables,如下所示

socket = /tmp/mysql.sock

myisam_sort_buffer_size = 8M

skip-grant-tables   //设置mysql服务器启动跳过权限表

保存并退出

2.重新启动mysql服务器

./usr/local/mysql/bin/mysqld_safe

注意这个时候mysql中的权限表已经失去作用了,为防止来自外部的攻击,最好断网操作。

3.登录并修改管理员root用户的密码

重新打开一个终端,如果上一个步骤是放到后台执行,也可以在同一个终端下执行

./usr/local/mysql/bin/mysql   如下所示

 [[email protected] bin]# ./mysql -u root -p

Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.5.23-log Source distribution

 Copyright (c) 2000, 2011, 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.

 Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

 mysql> show databases;

+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |

 

这个时候就可以不需要输入管理员root的密码

选择mysql库

mysql> use mysql;

修改root密码

 mysql> update user set password=password(‘123456‘) where user=‘root‘ and host=‘127.0.0.1‘;

Query OK, 1 row affected (0.11 sec)
Rows matched: 1 Changed: 1 Warnings: 0

刷新权限列表,让服务器下次启动能够生效

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

4.修改mysql配置文件

vim /etc/my.cnf

将步骤一中在[mysqld]的段中加上的skip-grant-tables删除 ,
保存并且退出vi。

 5.重新启动mysql服务器即可

./usr/local/mysql/bin/mysqld_safe

这时候使用刚才重置的密码即可登录mysql

 

windows环境下

1.打开DOS切换到mysql安装目录的bin文件夹下

2.输入mysqld --skip-grant-table  回车

注意不要退出

3.再打开一个DOS窗口切换到mysql安装的目录的bin文件夹下

4.输入mysql  回车

5.选择mysql库,use mysql

6.重新设置root密码

update user set password=password(‘newpassword‘) where user=‘root‘

7.刷新权限表

flush privileges

8.退出两个终端,重新登录即可

 













以上是关于MySQL密码破解。的主要内容,如果未能解决你的问题,请参考以下文章

mysql - 修改密码报错

怎么查看mysql的密码是啥

mysql没有默认密码不能登录,要怎么解决

MySQL密码破解或没有密码情况重设用户密码

mysql 用户账号权限与密码问题

mysql忘记密码后重置密码的方法(mysql 8.0.25重置密码)