我正在学习MySQL,并在Windows10上使用MySQL服务器8.0执行一个测试点的时间恢复。我有一个问题-重播二进制日志如下。
首先,建立测试数据库。
mysql -uroot -e "DROP DATABASE IF EXISTS StackOverflow;"
mysql -uroot -e "CREATE DATABASE StackOverflow;"
mysql -uroot StackOverflow -e "CREATE TABLE Users(FirstName VARCHAR(100),LastName VARCHAR(100));"
mysql -uroot StackOverflow -e "INSERT INTO Users VALUES ('John','Smith');"执行完全备份
mysqldump --databases StackOverflow --master-data=2 -uroot > C:\Test\SO.sql
更改更多数据
mysql -uroot StackOverflow -e "INSERT INTO Users VALUES ('Jimi','Jones');"
错误地执行更新:
mysql -uroot StackOverflow -e "UPDATE Users SET LastName = 'Walker';"
从这里开始,我希望在INSERTed Jones之后,但在我们执行不带WHERE子句的UPDATE之前,恢复这个点。
我提议的程序是:
UPDATE之前的点我这样做如下:
将完整备份后的所有二进制日志转储到文本文件以进行分析:
mysqlbinlog --verbose MyPc-bin.000003 --database StackOverflow > C:\test\binlog.txt
在这里,我可以在文本编辑器中打开C:\test\binlog.txt,并计算出需要停止的日志号码。
执行完全还原:
mysql -uroot < C:\Test\SO.sql
重播日志:
mysqlbinlog C:\test\binlog.txt --start-position=89925 --stop-position=90568 | mysql -uroot
在这里,我遇到一个错误,我得到
错误: Binlog有错误的魔术号;它不是这个版本的MySQL可以使用的二进制日志文件
如果我尝试使用mysqlbinlog将我转储到文件中的binlog显示到它的完整性中的屏幕上:
mysqlbinlog C:\test\binlog.txt
我得到了
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
ERROR: Binlog has bad magic number; It's not a binary log file that can be used by this version of MySQL
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;我可以使用mysqlbinlog --verbose MyPC-bin.000003 --database StackOverflow从服务器读取binlog。
但不能把它转储到一个文件里去读。
我在想,也许这是正在转储的文件的编码问题?
请有人告诉我如何使用mysqlbinlog读取转储的文件mysqlbinlog。
发布于 2021-06-10 16:39:32
使用mysqlbinlog --verbose MyPc-bin.000003 --database StackOverflow > C:\test\binlog.txt (即文件C:\test\binlog.txt )转储的不是二进制日志,因此不能将其用作binlog命令的源。
你应该做的是:
mysqlbinlog MyPc-bin.000003 --start-position=89925 --stop-position=90568 | mysql -uroot也就是说,您仍然需要读取原始日志文件。
https://dba.stackexchange.com/questions/293942
复制相似问题