Linux下MySQL忘记密码的破解方法

2023-02-24 17:25:09 浏览数 (1)

说明

确认服务器处于安全状态,因为数据库都很重要,在以下修改mysql的root账户的密码中,任意用户都能访问修改你的数据库,所以建议断网,在不联网的环境下修改。

破解步骤

编辑/etc/my.cnf文件

关闭MySQL,打开/etc/my.cnf,在[mysqld]的段中加上一句:skip-grant-tables,保存退出。

代码语言:javascript复制
# vim /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[mysqld]
skip-grant-tables				#添加内容
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
重启mysql
代码语言:javascript复制
systemctl restart mysqld
设置新密码
代码语言:javascript复制
# mysql   #进入mysql
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.7.37 MySQL Community Server (GPL)

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

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> use mysql;     #进入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 authentication_string=passworD("123456") where user='root';     #设置密码为123456
Query OK, 1 row affected, 1 warning (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 1

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

mysql> quit
Bye
改回/etc/my.cnf文件并重启mysql

编辑/etc/my.cnf文件删除skip-grant-tables,然后重启mysql,验证密码生效。

0 人点赞