ubuntu mysql操作日志_mysql 利用logbin恢复误delete的数据(windows/ubuntu)

本文介绍了在Ubuntu环境下,当MySQL数据出现误删除时,如何利用log-bin日志进行恢复。步骤包括:检查并开启log-bin,模拟误操作,锁表,查询日志文件,导出bin-log内容,以及通过两种方式恢复数据。提供了解决此类问题的详细操作指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 查询log-bin是否开启,如果没有开启log-bin则需要开启,否则无法恢复数据。

show variables like 'log_bin';

2. 如何开启log-bin?

2.1 windows

第一步:client查看mysql的安装路径(show variables like "%char%"),在安装路径下找到 my.ini文件,加上log-bin=mysql-log-bin,binlog_format=ROW。

第二步:设置数据库默认编码为utf8

第四步:重启mysql,再次查询log-bin是否开启

(ubuntu重启mysql:sudo service mysql restart)

2.2 ubuntu

找到mysql配置文件 mysqld.cnfubuntu开启log_bin

3. 模拟误操作数据

模拟误操作:delete from 表名(drop操作无法恢复)

4. 锁表

为了避免数据再次被污染,锁表

锁表

lock tables 表名 read ;

解锁

UNLOCK TABLE

5. 查询日志文件位置

show binary logs #查看所有的二进制日志文件

show master status #查看当前的日志文件

show binlog events in '当前日志文件名称' #查看日志文件内容

如何找到日志文件的具体位置呢?如果你在“如何开启log-bin?”这一步配置了绝对路径,

那就去看看你的配置写的是哪儿;要是配置的是相对路径,在client执行 show variables like 'datadir'。

6. 导出bin-log日志文件 具体内容

二进制日志用记事本、编辑器、vi或vim等等打开都是乱码的,必须用mysqlbinlog才能正确打开。管理员打开cmd

进入到mysql 的bin目录(client查看mysql安装路径:show variables like "%char%"))

输入 mysqlbinlog -v "C:\ProgramData\MySQL\MySQL Server 5.7\Data\mysql-log-bin.000002" --start-position=4625 --stop-position=5145 >D:\mysql-log-bin.sql在D盘查看生成的日志

7. 恢复

7.1 第一种方式:使用位置恢复(cmd窗口,我觉得不太好使)

管理员身份打开cmd,进入mysql的bin目录下;

mysqlbinlog --start-position="4289" --stop-position="8837" D:\mysql-log-bin.000002 | mysql -u root -p test

7.2 第二种方式:使用文件导出的文件恢复(client)(我觉得这个挺好使)导出的文件内容

导出的日志文件内容记录了执行的具体sql,将sql恢复为insert/update进行恢复。

8. 其他命令

关闭当前的二进制日志文件并创建一个新文件,新的二进制日志文件的名字在当前的二进制文件的编号上加1。

flush logs;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值