mysqlbinlog恢复MySQL

非 Y 不嫁゛ 提交于 2020-12-18 04:11:18

#mysqlbinlog恢复MySQL 是否启用了日志

SHOW VARIABLES LIKE 'log_bin';

怎样知道当前的日志

SHOW master STATUS;

看二进制日志文件用mysqlbinlog

mysqlbinlog mail-bin.000001

如果MySQL服务器启用了二进制日志,你可以使用mysqlbinlog工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据。

要想确定当前的二进制日志文件的文件名,输入下面的MySQL语句:

SHOW BINLOG EVENTS G;

##指定恢复时间 假设在今天上午10:00(今天是2015年11月4日),执行SQL语句来删除一个大表。要想恢复表和数据,你可以恢复前晚上的备份,并输入:

mysqlbinlog --stop-date="2015-11-04 9:59:59" --database=$DB_NAME $BINLOG --result-file=$SQL_FILE

执行恢复特定时间段内的数据:

mysqlbinlog --start-date="2015-11-04 8:59:59" --stop-date="2015-11-04 9:59:59" --database=$DB_NAME $BINLOG --result-file=$SQL_FILE

##指定恢复位置 也可以不指定日期和时间,而使用mysqlbinlog的选项–start-position和–stop-position来指定日志位置。它们的作用与起止日选项相同,不同的是给出了从日志起的位置号。使用日志位置是更准确的恢复方法

mysqlbinlog --start-position="20" --stop-position="2000" --database=$DB_NAME $BINLOG --result-file=$SQL_FILE

或者,直接使用命令导入数据库:

mysqlbinlog --start-position="20" --stop-position="2000" --database=$DB_NAME $BINLOG | mysql -u root
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!