組み込みMySQLサーバーライブラリは,クライアントアプリケーション内で,完全な機能を備えたMySQLサーバーを実行できるようにします。この主なメリットは組み込みアプリケーションの速度の向上と管理の単純化です。
組み込みサーバーライブラリは,C / c++で書かれているMySQLのクライアント/サーバーバージョンに基づいています。そのため,組み込みサーバーもc / c++で書かれています。ほかの言語で利用可能な組み込みサーバーはありません。
APIは組み込みMySQLバージョンとクライアント/サーバーバージョンで同じです。組み込みライブラリを使用するようにスレッドアプリケーションを変更するには,通常次の関数への呼び出しを追加する必要があるだけです。
表23.3 MySQL組み込みサーバーライブラリ関数
関数 |
呼び出すタイミング |
---|---|
|
ほかのMySQL関数が呼び出される前,できれば |
|
プログラムが終了する前に呼び出します。 |
|
MySQLにアクセスする,作成する各スレッド内で呼び出します。 |
mysql_thread_end () |
pthread_exit () を呼び出す前に,呼び出します。 |
次に,コードをlibmysqlclient.a
の代わりにlibmysqld.a
とリンクします。アプリケーションとサーバーライブラリ間のバイナリ互換性を確保するには,常に,サーバーライブラリのコンパイルに使用された同じ一連のMySQLのヘッダーに対してアプリケーションをコンパイルします。たとえば,libmysqld
がMySQL 5.1ヘッダーに対してコンパイルされていた場合,アプリケーションをMySQL 5.5ヘッダーに対してコンパイルしないでください。また逆も同様です。
mysql_library_
関数はxxx
()libmysqlclient.a
にも含まれているため,アプリケーションを正しいライブラリとリンクするだけで,組み込みバージョンとクライアント/サーバーバージョン間の変更が可能です。セクション23.7.7.40 " mysql_library_init() "を参照してください。
組み込みサーバーとスタンドアロンサーバーの1つの違いは,組み込みサーバーの場合,接続のための認証がデフォルトで無効にされていることです。