組み込み 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 つの違いは、組み込みサーバーの場合、接続のための認証がデフォルトで無効にされていることです。