1. MySQL的binlog恢复(Windows下)

天祈
2021-12-23 / 0 评论 / 261 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年06月13日,已超过1032天没有更新,若内容或图片失效,请留言反馈。

初识binlog

  MySQL的binlog就是大家经常所说的Binary Log,即bin-log,是MySQL存储对数据库改动的二进制文件,也就是记录了所有DDL与DML(select除外)语句.

  首先查看 mysqlbinlog 是否已经打开:

-- 查看MySQL的日志是否打开(log_bin项)

mysql> SHOW VARIABLES LIKE 'log_bin%';     
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| log_bin                         | ON    |
| log_bin_trust_function_creators | OFF   |
+---------------------------------+-------+
2 rows in set (0.01 sec)

-- 查看日志过期时间(过期之后日志会自动删除)
  
mysql> show variables like '%expire_logs_days%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| expire_logs_days | 0     |
+------------------+-------+
1 row in set (0.00 sec)

  如果 log_bin 是关闭状态的话,我们需要修改mysql配置文件.比如我的mysql安装位置是:D:\mysql\bin\mysql.exe. 所以修改D:\mysql\my.ini 文件,添加以下配置:

# 如果 log_bin=mysql-bin  则日志文件会默认存放在 C:\ProgramData\MySQL\MySQL Server 5.5\data\
log-bin=D:/mysql/data/mysql-bin
binlog_format=mixed 
# 设置日志永不过期(一般设置为10 即十天之后过期删除)
expire_logs_days = 0

  修改之后执行 services.msc 打开服务,重启mysql服务生效.


数据恢复测试

1.准备表person,插入基本数据:

mysql> CREATE TABLE `person`  (
    ->   `id` varchar(255) ,
    ->   `name` varchar(255) ,
    ->   `age` int(10)
    -> );
Query OK, 0 rows affected (0.02 sec)
mysql> select * from person;
Empty set (0.01 sec)
mysql> INSERT INTO person VALUES (uuid(),'张三',18);INSERT INTO person VALUES (uuid(),'王五',30);
Query OK, 1 row affected (0.00 sec)
Query OK, 1 row affected (0.00 sec)
mysql> select * from person;
+--------------------------------------+------+------+
| id                                   | name | age  |
+--------------------------------------+------+------+
| bcaa790d-6499-11ec-86bc-8c16453d981b | 张三 |   18 |
| bcaae031-6499-11ec-86bc-8c16453d981b | 王五 |   30 |
+--------------------------------------+------+------+
2 rows in set (0.00 sec)

2.模拟误删除person表:

mysql> delete from person;
Query OK, 2 rows affected (0.00 sec)

3.尝试恢复表数据:

  

  

1

评论 (0)

取消