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


23.8.4.3 C API クライアントプログラムの実行

アップグレード後に、コンパイル済みのクライアントプログラムに、「コマンドは同期されていません」または予期しないコアダンプなどの問題が発生した場合は、プログラムが古いヘッダーファイルまたはライブラリファイルを使用してコンパイルされた可能性があります。この場合、コンパイルに使用された mysql.h ファイルおよび libmysqlclient.a ライブラリの日付をチェックして、それらが新しい MySQL 配布からのものであることを確認します。そうでない場合には、プログラムを新しいヘッダーおよびライブラリで再コンパイルします。ライブラリのメジャーバージョン番号が変更された (libmysqlclient.so.17 から libmysqlclient.so.18 など) 場合に、共有クライアントライブラリに対してコンパイルされているプログラムでも、再コンパイルが必要になる可能性があります。

メジャークライアントライブラリバージョンによって互換性が決まります。(たとえば、libmysqlclient.so.18.1.0 の場合、メジャーバージョンは 18 です。)このため、新しいバージョンの MySQL に付属するライブラリは、同じメジャー番号を持つ古いバージョンの簡単に取り換え可能な代替です。メジャーライブラリバージョンが同じであるかぎり、ライブラリをアップグレードでき、古いアプリケーションはそれと連携し続けます。

MySQL プログラムを実行しようとすると、実行時に未定義参照エラーが発生することがあります。これらのエラーで mysql_ から始まるシンボルが指定されているか、libmysqlclient ライブラリが見つからないことを示している場合、それはシステムが共有 libmysqlclient.so ライブラリを見つけられないことを意味します。この問題の解決方法は、システムにそのライブラリが存在するディレクトリ内で共有ライブラリを検索するように伝えることです。次の方法のうち使用しているシステムに適切な方法を使用します。

  • libmysqlclient.so が存在するディレクトリのパスを LD_LIBRARY_PATH または LD_LIBRARY 環境変数に追加します。

  • OS X では、libmysqlclient.dylib が存在するディレクトリのパスを DYLD_LIBRARY_PATH 環境変数に追加します。

  • 共有ライブラリファイル (libmysqlclient.so など) を、/lib などシステムによって検索されるいくつかのディレクトリにコピーし、ldconfig を実行して、共有ライブラリ情報を更新します。すべての関連ファイルをコピーしてください。共有ライブラリは、代替名を提供するシンボリックリンクを使用して、複数の名前で存在することがあります。

アプリケーションが組み込みサーバーライブラリにリンクされている場合、実行時エラーメッセージに、libmysqlclient ライブラリではなく、libmysqld が示されますが、この問題の解決方法は説明したばかりのものと同じです。


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