Mysql(9)mysql bin-log日志及数据恢复套路

MySQL的bin-log日志

删库不一定非得跑路!就算被飞!做到尽可能的恢复数据才是一个程序员的自我修养!

当然,前提是你得提前先开启mysql的bin-log日志,并定期备份!


bin-log日志的作用:记录mysql的操作内容

bin-log日志的其他用处:mysql读写分离(主从分离)


如何开启bin-log日志?

//vi 打开 mysql 配置文件
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 

//找到 以下两个配置项
server-id               = 1
log_bin                 = /var/log/mysql/mysql-bin.log           //此处的bin-log目录中存储着mysql的bin-log日志,需要使用mysqlbinlog指令导出.sql的恢复文件

//把注释打开 改完后 保存推出
//重启mysql
sudo service mysql restart


下面是一个使用bin-log和mysql备份sql文件恢复丢失数据的实例!

(1) 开启mysql bin-log 日志
(2) 进入mysql 输入show binary logs 查看日志
    当我们进行增删改操作的时候 日志会记录我们的操作

(3) 刷新日志 flush logs;

通过binlog日志恢复数据

======模拟场景=======
数据库凌晨2:00进行数据备份
2:00-早上6:00数据还没有备份
但是早上六点误操作 删除了数据库

======开始操作=======(1,2步为准备mysql库和表,可跳过)
(1) 清空日志文件 reset master;

(2) 创建库
	create database database_name
    创建表
  	create table table_name(字段名 字段约束,字段名 字段约束)
    插入3条数据
        insert into table_name values(),(),()

(3) 备份数据库 全备份
	mysqldump -uroot -p -B -F -R -x --master-data=2 wiz_table > /home/wiz/wiz_table.sql         
       (wiz_table:备份的库的名字,wiz_table.sql:库备份后的sql文件)
	参数说明:
	-B:指定数据库
	-F:刷新日志
	-R:备份存储过程等
	-x:锁表
	--master-data:在备份语句里添加CHANGE MASTER语句以及binlog文件及位置点信息

(4) 再添加数据
	insert into table_name values(),(),()

(5) 误操作 删库
	drop database database_name

====开始恢复数据=======
(6) 找binlog日志 并导出成.sql  
	mysqlbinlog -uroot -p 日志文件名 > 日志文件.sql

(7) 打开导出的日志文件 找到删除语句  删除 保存退出 (因为数据要恢复到未删除之前)                                         
    
(8) 先导入备份的数据
   (这里导入的是上文中的wiz_table.sql)

	mysql  -uroot -p  < 备份的数据库文件.sql 
             
(9) 导入修改后的日志文件 
   (这里导入的是(6)中的日志文件.sql)
                                                                           
	mysql -uroot -p 库名< 日志文件.sql






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值