25.2.12.1. mysql_server_init()
int mysql_server_init(int argc, char **argv, char
**groups)
Description
This function must be called
once in the program using the embedded server before calling
any other MySQL function. It starts the server and initializes
any subsystems (mysys,
InnoDB, and so forth) that the server uses.
If this function is not called, the next call to
mysql_init() executes
mysql_server_init(). If you are using the
DBUG package that comes with MySQL, you should call this after
you have called my_init().
The argc and argv
arguments are analogous to the arguments to
main(). The first element of
argv is ignored (it typically contains the
program name). For convenience, argc may be
0 (zero) if there are no command-line
arguments for the server.
mysql_server_init() makes a copy of the
arguments so it's safe to destroy argv or
groups after the call.
If you want to connect to an external server without starting
the embedded server, you have to specify a negative value for
argc.
The NULL-terminated list of strings in
groups selects which groups in the option
files are active. See Section 4.3.2, “Using Option Files”. For
convenience, groups may be
NULL, in which case the
[server] and [embedded]
groups are active.
Example
#include <mysql.h>
#include <stdlib.h>
static char *server_args[] = {
"this_program", /* this string is not used */
"--datadir=.",
"--key_buffer_size=32M"
};
static char *server_groups[] = {
"embedded",
"server",
"this_program_SERVER",
(char *)NULL
};
int main(void) {
if (mysql_server_init(sizeof(server_args) / sizeof(char *),
server_args, server_groups))
exit(1);
/* Use any MySQL API functions here */
mysql_server_end();
return EXIT_SUCCESS;
}
Return Values
0 if okay, 1 if an error occurred.