10.1 C API二进制日志界面概述

以下简单示例程序演示了二进制日志C API函数。计划注意:

  • mysql.假设是一个有效的连接处理程序。

  • 最初的声明设置了@source_binlog_checksum.用户定义的变量,服务器用作客户端是校验和感知的指示。此客户端对校验和没有任何内容,但没有此语句,其中包含二进制日志事件中的校验和的服务器将返回第一次尝试读取包含校验和的事件的错误。分配给变量的值是无关紧要的;重要的是存在的变量。存在。

if(mysql_query(mysql,'set @ source_binlog_checksum ='全部'))){fprintf(stderr,“mysql_query()失败\ n”);fprintf(stderr,“错误%U:%s \ n”,mysql_errno(mysql),mysql_error(mysql));出口(1);mysql_rpl rpl;rpl.file_name_length = 0;rpl.file_name = null;rpl.start_position = 4;rpl.server_id = 0;rpl.flags = 0;if(mysql_binlog_open(mysql,&rpl)){fprintf(stderr,“mysql_binlog_open()失败\ n”); fprintf(stderr, "Error %u: %s\n", mysql_errno(mysql), mysql_error(mysql)); exit(1); } for (;;) /* read events until error or EOF */ { if (mysql_binlog_fetch(mysql, &rpl)) { fprintf(stderr, "mysql_binlog_fetch() failed\n"); fprintf(stderr, "Error %u: %s\n", mysql_errno(mysql), mysql_error(mysql)); break; } if (rpl.size == 0) /* EOF */ { fprintf(stderr, "EOF event received\n"); break; } fprintf(stderr, "Event received of size %lu.\n", rpl.size); } mysql_binlog_close(mysql, &rpl);

有关展示如何使用这些功能的其他示例,请查看这些源文件的MySQL源分发:

  • mysqlbinlog.cc.在里面客户目录

  • mysql_client_test.c.在里面睾丸目录