全国

切换城市

Mysql数据库被误删除了怎么恢复

当前位置:

首页 > 恢复项目
Mysql数据库被误删除了怎么恢复
详情介绍
Mysql数据库被误删除了怎么恢复,不要着急,耐心看下面解决办法。

本方法适用于Mysql数据库开启binlog日志,如果没有开启,抱歉,不需要往下看了。

如何看数据库有没有看起开启binlog日志 ,查看配置文件


或者执行 

# cat /etc/my.cnf
log_bin=mysql-bin
 
# mysql -uroot -p
Enter password:
mysql> show variables like'log_bin%';
+---------------------------------+--------------------------------------------------+
| Variable_name                   | Value                                            |
+---------------------------------+--------------------------------------------------+
| log_bin                         | ON                                               |
| log_bin_basename                | /home/programs/mysql-5.6.26/data/mysql-bin       |
| log_bin_index                   | /home/programs/mysql-5.6.26/data/mysql-bin.index |
| log_bin_trust_function_creators | OFF                                              |
| log_bin_use_v1_row_events       | OFF                                              |
+---------------------------------+--------------------------------------------------+
5 rows in set (0.00 sec)
 
# ll /home/programs/mysql-5.6.26/data/mysql-bin*
-rw-rw---- 1 mysql mysql 343629748 Oct 13 22:09 /home/programs/mysql-5.6.26/data/mysql-bin.000001
-rw-rw---- 1 mysql mysql        19 Sep 23 17:11 /home/programs/mysql-5.6.26/data/mysql-bin.index
1. 找到数据库data文件,默认在数据库安装目录下,但是也有很多自定义的。

(默认:/数据库安装目录/data       宝塔:/www/server/data)

2. 在data目录下找到日志片

根据时间,找到想要恢复的片,我根据大小和时间判断,我所有修复的是 mysql-bin.000007

为了备份,我将 mysql-bin.000007拷贝到bak目录下,执行

 mysqlbinlog --base64-output=DECODE-ROWS -v -d 数据库名 mysql-bin.000007 > data.sql
在此,可能有一个问题,就是mysqlbinlog 命令找不到,其实可以用软连接的形式

find  / -name mysqlbinlog -print
ln -fs /www/server/mysql/bin/mysqlbinlog /usr/bin
执行上面两步,就可以使用这个命令了。

然后,将生成的data.sql进行还原就可以了

 mysql -uroot -p -f 数据库名 < data.sql
以上为数据库还原解决方法。