The embedded MySQL server library makes it possible to run a full-featured MySQL server inside a client application. The main benefits are increased speed and more simple management for embedded applications.
The embedded server library is based on the client/server version of MySQL, which is written in C/C++. Consequently, the embedded server also is written in C/C++. There is no embedded server available in other languages.
The API is identical for the embedded MySQL version and the client/server version. To change an old threaded application to use the embedded library, you normally only have to add calls to the following functions:
| Function | When to Call | 
| mysql_server_init() | Should be called before any other MySQL function is called, preferably
                  early in the main()function. | 
| mysql_server_end() | Should be called before your program exits. | 
| mysql_thread_init() | Should be called in each thread you create that accesses MySQL. | 
| mysql_thread_end() | Should be called before calling pthread_exit() | 
          Then you must link your code with
          libmysqld.a instead of
          libmysqlclient.a.
        
          The
          mysql_server_
          functions are also included in
          xxx()libmysqlclient.a to allow you to change
          between the embedded and the client/server version by just
          linking your application with the right library. See
          Sección 24.2.12.1, “mysql_server_init()”.
        
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

