Spec-Zone.ru › MySQL Connectors 1.0

10.1 Обзор интерфейса двоичного протокола C API

Следующая простая программа-пример демонстрирует функции C API двоичного протокола. Примечания к программе:

  • mysql предполагается, что это корректный обработчик соединения.

  • Первое утверждение устанавливает @source_binlog_checksum пользовательскую переменную, которую сервер использует как указание того, что клиент умеет работать с контрольными суммами. Этот клиент не использует контрольные суммы, но без этого утверждения сервер, включающий контрольные суммы в события двоичного протокола, вернёт ошибку при первой попытке прочитать событие, содержащее контрольную сумму. Присвоенное значение переменной не имеет значения; важно лишь, чтобы переменная существовала.

if (mysql_query(mysql, "SET @source_binlog_checksum='ALL'"))
{
  fprintf(stderr, "mysql_query() failed\n");
  fprintf(stderr, "Error %u: %s\n",
           mysql_errno(mysql), mysql_error(mysql));
  exit(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() failed\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 в каталоге client

  • mysql_client_test.c в каталоге testclients

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/c-api-8.0-en/c-api-binary-log-interface-usage.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API