Mysql的密码破解方法

MySQL密码破解

1.破解密码一:

MySQL安装完成之后,系统会分配一个随机的密码

  • 启动mysql
  • 然后查找mysql初始密码;
  • 这种方法设定的规则和规定都无法保存到配置文件;
#启动mysql
[root@node0 ~]# systemctl start mysqld.service 

#查找mysql的初始密码
[root@node0 ~]# grep "password"  /var/log/mysqld.log 
2023-04-03T10:06:19.010137Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: uF,u5(itxke/

#登陆
[root@node0 ~]# mysql -uroot -p'uF,u5(itxke/'
......#看到这个字符界面就代表进入成功
mysql> 

#然后先设定一个密码
mysql> alter user 'root'@'localhost' identified by "LJw!@#123";
Query OK, 0 rows affected (0.01 sec)

#设定密码规则
mysql> set global validate_password.policy=0;
mysql> set global validate_password.length=1;
Query OK, 0 rows affected (0.00 sec)

#设定自己喜欢的123456
mysql> alter user 'root'@'localhost' identified by "123456";
Query OK, 0 rows affected (0.01 sec)

2.破解密码二:

mysql的安装是带有一个安全机制的修改密码体制

  • 使用命令来修改
#直接敲命令
[root@node0 ~]# mysql_secure_installation 
...........
Enter password for user root: 			#输入当前root的密码
...........
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y						#是否确认修改密码
...............
New password: 					#输入自己喜欢的密码
Re-enter new password: 			#再次确认密码
................
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y			#确认使用密码
............#是否删除匿名用户
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.
............#是否禁止root用户远程登录
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
..........#删除一些测试使用的表格
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
............#是否重新加载库
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
......
All done! 	#结束了
#使用新密码尝试登陆
[root@node0 ~]# mysql -uroot -p"123123"

3.破解密码三

  • 在未知密码的情况下修改密码
    • 可以使用update命令
    • 可以修改配置文件,让mysql允许空密码登陆
#修改配置文件
[root@Test0 ~]# vim /etc/my.cnf
.......	#在末行添加这一行-->代表允许空密码登陆
 32 skip-grant-tables
#重启msyql
[root@Test0 ~]# systemctl restart mysqld

#尝试登陆mysql-->这里就发现可以空密码登陆
[root@Test0 ~]# mysql
...
mysql> 

#查看一下允许访问root用户的host有哪些
mysql> use mysql
mysql> select user,host from user where user='root';
+------+-----------+
| user | host      |
+------+-----------+
| root | localhost |
+------+-----------+
1 row in set (0.00 sec)


#然后修改密码-->这里使用的是update命令
	#update是更新的肆意
	#user是表
	#后面跟的就是具体的定位指令
	#把密码清空-->
mysql> update user set authentication_string='' where user='root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0
	#清空了密码之后就退出
mysql> quit
Bye

#然后修改配置文件,-->取消空密码登陆
[root@Test0 ~]# vim /etc/my.cnf
....
#skip-grant-tables		#注释掉这个

#重启mysqld服务-->然后空密码登陆
[root@Test0 ~]# systemctl restart mysqld
[root@Test0 ~]# mysql

#然后直接修改密码登陆
	#然后刷新权限表格就ok了
mysql> alter user 'root'@'localhost' identified by 'llKK!@#123';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

#退出尝试登陆--->登陆成功
[root@Test0 ~]# mysql -uroot -p'llKK!@#123'

4.破解密码四:

  • 已知面的情况下可以直接使用命令来修改
    • mysqladmin是命令
      • 语法:mysqladmin -u(用户名) -p(旧密码) password “新密码”
#直接使用命令来修改
[root@Test0 ~]# mysqladmin -uroot -p'llKK!@#123' password 'WWkk!@#234'

#最好就把所有的密码规则取消,不然就会很多密码不够复杂的报错
	#直接修改配置文件
[root@Test0 ~]# vim /etc/my.cnf
...........#末行添加如下两行
validate_password_policy=0
validate_password_length=1

#重启
[root@Test0 ~]# systemctl restart mysqld

猜你喜欢

转载自blog.csdn.net/Liang_GaRy/article/details/130409574