是否可以将mysql binlog从语句格式转换为行格式?

mysql服务器在线版本为4.1,不支持基于行的二进制日志.不过,我需要基于行的binlog.我可以使用旧mysql生成的binlog并将其导入另一个支持行基binlog的更高版本的mysql来获取基于行的binlog吗?

解决方法:

您无法将binlog转换为其他版本,但只要具有版本4.1的mysqlbinlog,就可以导入其SQL.

只需执行以下操作:

>对MySQL 4.1 binlog运行MySQL 4.1版本的mysqlbinlog,将输出保存到stmts.sql
>在my.cnf中安装MySQL 5.x

> log-bin = mysql-bin
> binlog-format = ROW

>登录MySQL 5.1并运行source stmts.sql
>运行SHOW BINARY LOGS;

完成后,您看到的binlog应该是基于行的.

试试看 !!!

为什么你不能转换? BINLOG Magic Number在以后的版本中被取代.

我之前写过

> 2012年11月30日:How can you monitor if MySQL binlog files get corrupted?
> 2011年2月4日:MySQL master binlog corruption

每次重启mysql时,都会创建下一个空binlog.每个版本的MySQL都有不同的大小:

> MySQL 5.6:120
> MySQL 5.5:107
> MySQL 5.1:106
> MySQL 5.0:98

鉴于此,从头开始生成binlog是最好的方法.

更新:感谢Michael’s Comment,你必须将binlog来自的数据预加载到MySQL 5.1实例中.

上一篇:[转帖]Mysql binlog 介绍


下一篇:从mysql binlog(GTID)显示sql语句