我正在尝试以下命令从binlog中提取SQL语句,以便在另一个数据库(Amazon )中使用它
mysqlbinlog /var/lib/mysql/binlog.000027 --start-position=54375264 --base64-output=NEVER > /home/ec2-user/output2.sql但我得到了以下错误:
ERROR: --base64-output=never specified, but binlog contains a Table_map event which must be printed in base64.我在文档中看到,如果发现必须使用BINLOG显示的行事件,mysqlbinlog退出时会出现错误。是否有任何工作可以从binlog中提取SQL语句?
更新1:我再次使用选项运行命令--详细的,但在命令行中没有得到任何返回。
[root@server ec2-user]# mysqlbinlog /var/lib/mysql/binlog.000027 --start-position=54375264 --base64-output=DECODE-ROWS --verbose > /home/ec2-user/output4.sql
[root@server ec2-user]#
[root@server ec2-user]#当我浏览output4.sql时,可以看到一些valide +一些注释SQL,如下所示:
#130906 14:54:55 server id 1 end_log_pos 269447893 Query thread_id=1221718733 exec_time=0 error_code=0
SET TIMESTAMP=1378479295/*!*/;
BEGIN
/*!*/;
# at 269447893
# at 269447950
#130906 14:54:55 server id 1 end_log_pos 269447950 Table_map: `dbname`.`tablename` mapped to number 102
#130906 14:54:55 server id 1 end_log_pos 269448102 Update_rows: table id 102 flags: STMT_END_F
### UPDATE `dbname`.`tablename`
### WHERE
### @1='edited by me'
### @2=0
### @3=1373178370
### SET
### @1='edited by me'
### @2=0
### @3=1378479295
# at 269448102
#130906 14:54:55 server id 1 end_log_pos 269448162 Query thread_id=1221718733 exec_time=0 error_code=0更新2:我正在学习这里的教程https://engineering.gosquared.com/migrating-mysql-to-amazon-rds
我想从binlog的输出中更新Amazon。目前,Amazon不允许从binlog中写入。我正在尝试从binlog中提取SQL状态,以便更新Amazon。有没有办法从binlog中更新Amazon?
发布于 2013-09-06 14:50:00
唯一可能的工作是在MySQL文档中提到
您可以告诉mysqlbinlog使用--base64 64- row =DECODE-row选项来抑制行事件的BINLOG语句。这类似于--base64 64-output=NEVER,但如果找到行事件,则不带错误退出。--base64 64-output=DECODE- row和-详细的组合提供了一种将行事件仅视为SQL语句的方便方法:
试试看!!
https://dba.stackexchange.com/questions/49409
复制相似问题