MySQL.RU .:. Одобрено лучшими российскими программистами

Справочное руководство по MySQL

8.4.5.1 mysql_server_init()

8.4.5.1 mysql_server_init()

int mysql_server_init(int argc, char **argv, char **groups)

8.4.5.2 Описание

Данную функцию необходимо вызывать только один раз во время работы программы - перед вызовом любой другой функции MySQL. Она запускает сервер и инициализирует все подсистемы (mysys, InnoDB и т.д.), используемые сервером. Без вызова этой функции произойдет аварийное завершение данной программы. При использовании пакета DBUG, поставляемого вместе с MySQL, данную функцию следует вызывать после функции MY_INIT().

Аргументы argc и argv аналогичны аргументам в main(). Первый элемент аргумента argv игнорируется (обычно он содержит имя программы). Для удобства аргумент argc может быть равен 0 (нуль) - если не задано ни одного аргумента командной строки для данного сервера.

Аргумент groups представляет собой список строк, заканчивающийся NULL. Этот аргумент задает активные группы в файлах опций (see section 4.1.2 Файлы параметров `my.cnf'). Для удобства аргумент groups может быть равен NULL - в этом случае будут активны группы [server] и [emedded].

8.4.5.3 Пример

#include <mysql.h>
#include <stdlib.h>

static char *server_args[] = {
  "this_program", /* эта строка не используется */
  "--datadir=.",
  "--set-variable=key_buffer_size=32M"
};

static char *server_groups[] = {
  "embedded",
  "server",
  "this_program_SERVER",
  (char *)NULL
};

int main(void) {
  mysql_server_init(sizeof(server_args) / sizeof(char *),
  server_args, server_groups);
  /* Здесь используются любые функции MySQL  API */
  mysql_server_end();
  return EXIT_SUCCESS;
}

8.4.5.4 Возвращаемые значения

0 - если все в порядке, 1 - если произошла ошибка.