200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > mysql误删数据快速恢复

mysql误删数据快速恢复

时间:2022-04-17 23:55:53

相关推荐

mysql误删数据快速恢复

mysql误删数据快速恢复

第一步:保证mysql已经开启binlog,查看命令:第二步:进入binlog文件目录,找出日志文件第三步:切换到mysqlbinlog目录第四步:通过mysqlbinlog工具命令查看数据库增删改查记录第五步:利用第四步输出的sql语句或者txt文本进行语句过滤,重新插入数据或更新数据

数据误删很烦恼,日志文件帮你找

第一步:保证mysql已经开启binlog,查看命令:

#登入数据库,输入以下命令show variables like '%log_bin%';

查看binlog存放日志文件目录(如下图,博主binlog目录为/data/mysql):

show variables like '%datadir%';

值为ON,已开启

如果没有开启binlog,也没有预先生成回滚SQL,那可能真的无法快速回滚了。对存放重要业务数据的MySQL,强烈建议开启binlog。

第二步:进入binlog文件目录,找出日志文件

可按修改时间确定是哪个文件

第三步:切换到mysqlbinlog目录

当线上数据出现错误的时候首先可以询问具体操作人记录时间点,这个时候可以借助mysql自带的binlog解析工具mysqlbinlog,具体位置在mysql安装目录**/mysql/bin/下

第四步:通过mysqlbinlog工具命令查看数据库增删改查记录

必须切换到mysqlbinlog目录才有效

例子1:查询-11-12 09:00:00到-11-13 20:00:00 数据库为 youxi 的操作日志,输入如下命令将数据写入到一个备用的txt文件中

mysqlbinlog --no-defaults --database=youxi --start-datetime="-11-12 09:00:00" --stop-datetime="-11-13 20:00:00" /data/mysql/mysql-bin.000015 > template_coupon_tb_product_category.txt

例子2:查询-11-12 09:00:00到-11-13 20:00:00 数据库为 youxi 的操作日志,并输出到屏幕上

mysqlbinlog --no-defaults --database=youxi --start-datetime="-11-12 09:00:00" --stop-datetime="-11-13 20:00:00" /data/mysql/mysql-bin.000015 |more

例子3:查询-11-12 09:00:00到-11-13 20:00:00 数据库为 youxi 的操作日志,并且过滤出 只包括 template_coupon_tb_product_category 表数据的操作记录 ,输入如下命令将数据写入到一个备用的txt文件中

mysqlbinlog --no-defaults --database=youxi --start-datetime="-11-12 09:00:00" --stop-datetime="-11-13 20:00:00" /data/mysql/mysql-bin.000015 | grep template_coupon_tb_product_category > template_coupon_tb_product_category.txt

mysqlbinlog 命令的语法格式: mysqlbinlog mysql-bin.0000xx | mysql -u用户名 -p密码

数据库名

-------------------------------------------------------- 常用参数选项解释:

–start-position=875 起始pos点

–stop-position=954 结束pos点

–start-datetime=“-9-25 22:01:08” 起始时间点

–stop-datetime=“-9-25 22:09:46” 结束时间点

–database=zyyshop 指定只恢复zyyshop数据库(一台主机上往往有多个数据库,只限本地log日志)

-------------------------------------------------------- 不常用选项:

-u --user=name 连接到远程主机的用户名

-p --password[=name] 连接到远程主机的密码

-h --host=name 从远程主机上获取binlog日志

–read-from-remote-server 从某个MySQL服务器上读取binlog日志

第五步:利用第四步输出的sql语句或者txt文本进行语句过滤,重新插入数据或更新数据

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。