7.设置启动二进制日志,在goods表中添加一行记录,并使用 mysqlbinlog 命令查看该文件。 8.删除goods表,然后设法恢复goods表中数据,使其恢复到第7题时的状态(最新版mysqlbinlog使用--stop-datetime替代--stop-date)。
时间: 2024-02-23 19:03:35 浏览: 75
mysql-binlog二进制日志恢复
7. 设置启动二进制日志,并添加一行记录:
首先,需要在 MySQL 配置文件中启用二进制日志。在 `my.cnf` 文件中添加以下内容:
```
[mysqld]
log-bin=mysql-bin
```
然后,重启 MySQL 服务。
接下来,可以在 `goods` 表中添加一行记录:
```mysql
USE shop;
INSERT INTO goods (name, price, created_at) VALUES ('Watermelon', 9.99, NOW());
```
此时,MySQL 会自动将该操作记录到二进制日志文件 `mysql-bin.XXXXXX` 中。
最后,可以使用 `mysqlbinlog` 命令查看该日志文件:
```bash
mysqlbinlog mysql-bin.XXXXXX
```
8. 删除 `goods` 表,并恢复数据:
```mysql
USE shop;
DROP TABLE goods;
```
接下来,需要通过二进制日志文件恢复数据。
首先,使用 `mysqlbinlog` 命令查看日志文件,并找到最后一次删除 `goods` 表的操作:
```bash
mysqlbinlog mysql-bin.XXXXXX --stop-datetime="2022-01-01 00:00:00"
```
该命令会输出截止到指定时间的日志内容。找到最后一次删除 `goods` 表的操作,记录下其时间戳和位置信息(如 `#123456`)。
然后,使用 `mysqlbinlog` 命令将该操作转换为 SQL 语句:
```bash
mysqlbinlog mysql-bin.XXXXXX --start-position=123456 --stop-position=123456 | mysql -uroot -p
```
该命令会执行从指定位置开始到指定位置结束的操作,并将结果导入到 MySQL 中。执行完毕后,`goods` 表中的数据应该已经恢复到删除前的状态了。
阅读全文