# 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

6fc9f009b3b0e55ac034907d2c341c1f.png

根据时间,找到想要恢复的片,我根据大小和时间判断,我所有修复的是 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

Logo

一站式 AI 云服务平台

更多推荐