[+/-]
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_library_init() | Should be called before any other MySQL function is called, preferably
            early in the main()function. | 
| mysql_library_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. To ensure binary
    compatibility between your application and the server library, be
    sure to compile your application against headers for the same series
    of MySQL that was used to compile the server library. For example,
    if libmysqld was compiled against MySQL 4.1
    headers, do not compile your application against MySQL 5.1 headers,
    or vice versa.
  
    The
    mysql_library_
    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
    Section 20.9.3.40, “mysql_library_init()”.
  
    One difference between the embedded server and the standalone server
    is that for the embedded server, authentication for connections is
    disabled by default. To use authentication for the embedded server,
    specify the --with-embedded-privilege-control
    option when you invoke configure to configure
    your MySQL distribution.
  


User Comments
Add your own comment.