- 准备工作
在进行Binlog数据恢复之前,我们需要进行一些准备工作:
- 安装Mysql数据库;
- 确定Binlog的保存位置;
- 准备临时的Mysql数据库;
- 准备需要恢复的数据备份。
- Binlog数据的恢复
2.1 查看Binlog文件
命令:
SHOW BINARY LOGS;
结果:
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000001 | 16815673 |
| mysql-bin.000002 | 15040702 |
| mysql-bin.000003 | 11810558 |
+------------------+-----------+
从结果可以看到,当前Mysql数据库保存了3个Binlog文件,分别是mysql-bin.000001、mysql-bin.000002、mysql-bin.000003。
2.2 查看Binlog文件的内容
命令:
mysqlbinlog mysql-bin.000001 > binlog.sql
该命令将mysql-bin.000001文件的内容输出到binlog.sql文件中。
2.3 恢复数据
首先,我们需要在新的临时Mysql数据库中创建需要恢复数据的表。然后,使用以下命令将之前备份的数据导入到该表格中:
mysql -u root -p password -h 127.0.0.1 -P 3306 -D test < data.sql
接着,使用以下命令将之前导出的Binlog数据应用到该表中:
mysql -u root -p password -h 127.0.0.1 -P 3306 -D test < binlog.sql
注意:
- 需要通过以上命令将Binlog数据应用到临时数据库的同样机器上的Mysql数据库;
-
为了避免与当前应用的数据库冲突,建议使用新的Mysql实例。(也就是新的地址、端口等信息)。
-
示例
以下示例演示了如何使用Binlog数据恢复。
3.1 示例一
假设当前的Mysql数据库中有一个test_db的数据库,用户不小心将该数据库删除了。
备份数据:
先进行数据备份,使用以下命令将备份数据保存到数据文件data.sql中:
mysqldump -u root -p test_db > data.sql
恢复数据:
在新的临时Mysql数据库中创建test_db数据表:
CREATE DATABASE test_db;
USE test_db;
SOURCE data.sql;
将Binlog数据应用到test_db数据表中:
mysqlbinlog mysql-bin.000001 > binlog.sql
mysql -u root -p password -h 127.0.0.1 -P 3306 -D test_db < binlog.sql
通过以上步骤,我们可以将不小心删除的test_db数据表恢复回来。
3.2 示例二
假设当前的Mysql数据库中有一个test_db的数据库,用户不小心将该数据库中的test_table表删除了。
备份数据:
先进行数据备份,使用以下命令将备份数据保存到数据文件data.sql中:
mysqldump -u root -p test_db test_table > data.sql
恢复数据:
在新的临时Mysql数据库中创建test_db数据表,使用以下命令创建test_table数据表:
CREATE TABLE `test_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
将备份数据导入到test_table数据表中:
mysql -u root -p password -h 127.0.0.1 -P 3306 -D test_db < data.sql
将Binlog数据应用到test_table数据表中:
mysqlbinlog mysql-bin.000002 > binlog.sql
mysql -u root -p password -h 127.0.0.1 -P 3306 -D test_db < binlog.sql
通过以上步骤,我们可以将不小心删除的test_table数据表恢复回来。
以上就是Mysql的Binlog数据恢复:不小心删除数据库详解的完整攻略,包括了准备工作、Binlog数据的恢复及两个示例说明。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mysql的Binlog数据恢复:不小心删除数据库详解 - Python技术站