Documentation Home
MySQL 5.6 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 31.0Mb
PDF (A4) - 31.0Mb
PDF (RPM) - 29.3Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb
HTML Download (RPM) - 6.2Mb
Man Pages (TGZ) - 175.7Kb
Man Pages (Zip) - 285.9Kb
Info (Gzip) - 3.0Mb
Info (Zip) - 3.0Mb
Excerpts from this Manual mysql_server_init()

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


This function initializes the MySQL client library, which must be done before you call any other MySQL function. However, mysql_server_init() is deprecated and you should call mysql_library_init() instead. See Section, “mysql_library_init()”.


To avoid memory leaks after the application is done using the library (for example, after closing the connection to the server), be sure to call mysql_server_end() (or mysql_library_end()) explicitly. This enables memory managment to be performed to clean up and free resources used by the library. See Section, “mysql_library_end()”.

Return Values

Zero for success. Nonzero if an error occurred.

User Comments
  Posted by Jason Mingl on September 10, 2003
I don't know how often this might come up for others, but here's a tip for those times you have to specify a path for the data directory (or other args) in server_args at runtime.

mysql_server_init apparently does not copy the strings you supply it. It simply makes use of the pointers. Be sure that any string variables you put in place of the server arguments persist throughout your program or some functions may fail. Here's an example:

char Data[] = "--datadir=c:/blah/blah/blah/";

const char *server_args[] =


Now the function ends and the 'Data' var is obliterated. mysql_server_init will execute correctly, but later, in a different function mysql_real_connect will fail mysteriously, claiming it can't find the specified database.

Seems simple, even obvious. I won't mention how long it took me to trace the problem in my program...
Sign Up Login You must be logged in to post a comment.