当前位置:Gxlcms > 数据库问题 > MySQL user表被删除了怎么办

MySQL user表被删除了怎么办

时间:2021-07-01 10:21:17 帮助过:8人阅读

当前user表的内容 */ mysql> select user,host from mysql.user; +---------------+--------------+ | user | host | +---------------+--------------+ | repl | 192.168.28.% | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +---------------+--------------+ 4 rows in set (0.00 sec) mysql> select now(); +---------------------+ | now() | +---------------------+ | 2020-04-16 06:37:07 | +---------------------+ 1 row in set (0.00 sec)

现在执行误删除

mysql> delete from  mysql.user;
Query OK, 4 rows affected (0.01 sec)

mysql>

1.2   恢复

当前情况下,如开启了binlog(生产环境一般都是开启了的),则可以从binlog恢复

注意如果有全部及其之后的binlog 则可以通过恢复备份并追加binlog的方式恢复数据(后续其他文章再专题介绍),本文基于无全备,仅有最近的日志情况下恢复(主要是为了使用binlog2sql工具)

1.2.1 先恢复root账号

因为删除后,其他用户无法重新连接数据库了,需要紧急恢复root账号,再做后续其他账号的恢复,恢复步骤为:

修改为跳过授权的模式,即在配置文件my.cnf文件中添加 skip-grant-tables 

重启数据库

登录数据库,添加root@‘localhost‘账号(可以从相同版本数据库中导出一个root账号的sql语句恢复

/usr/local/mysql5.7/bin/mysqldump -uroot -p123456  -t --socket=/data/mysql3307/tmp/mysql.sock mysql user --where " 1=1 and  user=‘root‘ and host=‘localhost‘" >1.sql

恢复数据

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> INSERT INTO `user` VALUES (localhost,root,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,‘‘,‘‘,‘‘,‘‘,0,0,0,0,mysql_native_password,password(123456),N,now(),NULL,N);
Query OK, 1 row affected (0.01 sec)

改为授权模式: 将配置文件里的 skip-grant-tables 注释或删除

再次重启数据库即可用刚恢复的root账号登录了

mysql> select user,host from mysql.user;
+------+-----------+
| user | host      |
+------+-----------+
| root | localhost |
+------+-----------+
1 row in set (0.00 sec)

1.2.2 安装binlog2sql

binlog2sql依赖python2.7及以上版本,且依赖包通过pip安装,对于python的升级及pip的安装可参考历史文章

升级python,就是这么简单

一分钟搞定pip安装

yum install -y git wget
git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

 

MySQL user表被删除了怎么办

标签:target   oca   get   mysql   内容   ase   tps   日志   别人   

人气教程排行