int mysql_server_init(int argc, char **argv, char **groups)
Описание
Данную функцию необходимо вызывать только один раз во время работы
программы, использующей встроенный сервер. Это функцию следует вызвать
перед вызовом любой другой функции MySQL. Она запускает сервер
и инициализирует все подсистемы (mysys
, InnoDB и т.д.), используемые
сервером. Без вызова этой функции произойдет аварийное завершение данной
программы. При использовании пакета DBUG
, поставляемого вместе с MySQL,
данную функцию следует вызывать после функции MY_INIT()
.
Аргументы argc
и argv
аналогичны аргументам в main
(). Первый элемент
аргумента argv
игнорируется (обычно он содержит имя программы). Для
удобства аргумент argc может быть равен 0 (нуль) - если не задано ни
одного аргумента командной строки для данного сервера.
mysql_server_init()
делает копию аргументов, т.е. она безопастна для
уничтожения argv
или groups
после вызова.
Аргумент groups
представляет собой список строк, заканчивающийся NULL
.
Этот аргумент задает активные группы в файлах опций (see Раздел 4.1.2, «Файлы параметров my.cnf
»). Для удобства аргумент groups может быть равен NULL
- в
этом случае будут активны группы [server]
и [emedded]
.
Пример
#include <mysql.h> #include <stdlib.h> static char *server_args[] = { "this_program", /* эта строка не используется */ "--datadir=.", "--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; }
Возвращаемые значения
0 - если все в порядке, 1 - если произошла ошибка.