MySql数据库被删除,如何解决?

  • Post author:
  • Post category: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

以上为数据库还原解决方法。



版权声明:本文为t876587201原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。