Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.1Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


23.8.1 MySQL C API の実装

MySQL C API は、C で書かれたクライアントアプリケーションが MySQL サーバーとの通信に使用できる C ベースの API です。クライアントプログラムはコンパイル時に C API ヘッダーを参照し、リンク時に C API ライブラリファイルにリンクします。ライブラリは、アプリケーションがサーバーとどのように通信することを意図しているかに応じて、2 つのバージョンで提供されています。

  • libmysqlclient: スタンドアロンサーバープロセスのクライアントとして、ネットワーク接続経由で通信するアプリケーションで使用される、ライブラリのクライアントバージョン。

  • libmysqld: アプリケーション自体の中に組み込み MySQL サーバーを含めることを目的としたアプリケーションで使用される、ライブラリの組み込みサーバーバージョン。アプリケーションはその独自のプライベートサーバーインスタンスと通信します。

どちらのライブラリも同じインタフェースを持ちます。C API 呼び出しに関して、アプリケーションは、組み込みサーバーと通信する同じ方法で、スタンドアロンサーバーと通信します。特定のクライアントを、構築時に libmysqlclient に対してリンクするか、libmysqld に対してリンクするかに応じて、スタンドアロンまたは組み込みサーバーと通信するように構築できます。

C API クライアントプログラムの構築に必要な C API ヘッダーおよびライブラリファイルを取得するには、2 つの方法があります。

  • MySQL サーバー配布をインストールします。サーバー配布には libmysqlclientlibmysqld の両方が含まれています。

  • MySQL Connector/C 配布をインストールします。Connector/C 配布には libmysqlclient のみ含まれます。それらには libmysqld は含まれません。

MySQL サーバーと MySQL Connector/C のどちらでも、事前構築された C API ファイルを含むバイナリ配布をインストールするか、ソース配布を使用して、自分で C API ファイルを構築できます。

通常、MySQL サーバー配布または MySQL Connector/C 配布のいずれかをインストールし、両方はインストールしません。MySQL サーバーと MySQL Connector/C の同時インストールに伴う問題については、セクション23.8.2「MySQL サーバーと MySQL Connector/C の同時インストール」を参照してください。

C API クライアントアプリケーションのリンク時に使用するライブラリファイルの名前は、ライブラリの種類と配布が構築されるプラットフォームによって異なります。

  • Unix (および Unix に類似する) システムで、静的ライブラリは libmysqlclient.a です。動的ライブラリはほとんどの Unix システムで libmysqlclient.so および OS X で libmysqlclient.dylib です。

    組み込みサーバーライブラリを含む配布の場合、対応するライブラリ名は libmysqlclient ではなく、libmysqld から始まります。

  • Windows では、静的ライブラリは mysqlclient.lib で、動的ライブラリは libmysql.dll です。Windows 配布には、動的ライブラリを使用するために必要な静的インポートライブラリの libmysql.lib も含まれます。

    組み込みサーバーライブラリを含む配布の場合、対応するライブラリ名は mysqlserver.liblibmysqld.dll、および libmysqld.lib です。

    Windows 配布には一連のデバッグライブラリも含まれます。これらは非デバッグライブラリと同じ名前を持ちますが、lib/debug ライブラリ内に置かれます。デバッグ C ランタイムを使用して構築されたクライアントのコンパイル時には、デバッグライブラリを使用する必要があります。

Unix では、名前に _r を含むライブラリも見られることがあります。MySQL 5.5 より前では、これらは、非 _r ライブラリとは別にスレッドセーフ (再入可能) ライブラリとして構築されました。5.5 以降、両方のライブラリが同じになり、_r 名は、対応する非 _r 名へのシンボリックリンクになります。_r ライブラリを使用する必要はありません。たとえば、mysql_config を使用して、リンカーフラグを取得する場合、スレッドクライアントでも、すべての場合に mysql_config --libs を使用できます。mysql_config --libs_r を使用する必要はありません。


User Comments
Sign Up Login You must be logged in to post a comment.