MySQL 5.1 リファレンスマニュアル :: 2 MySQL のインストールと更新 :: 2.9 ソースのディストリビューションを使用した MySQL のインストール :: 2.9.5 MIT-pthreads ノート
« 2.9.4 MySQL のコンパイルに関する問題

2.9.6 Windows にソースから MySQL をインストールする »
Section Navigation      [Toggle]
  • 2.9 ソースのディストリビューションを使用した MySQL のインストール
  • 2.9.1 ソースのインストール概要
  • 2.9.2 典型的な configure オプション
  • 2.9.3 開発ソース ツリーからのインストール
  • 2.9.4 MySQL のコンパイルに関する問題
  • 2.9.5 MIT-pthreads ノート
  • 2.9.6 Windows にソースから MySQL をインストールする
  • 2.9.7 Windows で MySQL クライアントをコンパイルする

2.9.5. MIT-pthreads ノート

この項では MIT-pthreads を使用した幾つかの問題について説明します。.

Linux には、MIT-pthreads は使用できません。その代わり実装した LinuxThreads を使用します。項2.13.1. 「Linux の注釈」 参照。

システムがネイティブのスレッドをサポートしていない場合、MIT-pthreads パッケージを使用して MySQL を構築する必要があります。これには旧 FreeBSD システム、SunOS 4.x、Solaris 2.4 およびそれ以前、並びにその他幾つかが含まれます。項2.1.1. 「MySQL Community Server がサポートしているオペレーティング システム」 参照。

MIT-pthreads は MySQL 5.1 のソース ディストリビューションには含まれていません。このパッケージが必要な場合、http://dev.mysql.com/Downloads/Contrib/pthreads-1_60_beta6-mysql.tar.gz から別途ダウンロードします。

ダウンロードしたら、このソース アーカイブを MySQL ソース ディレクトリの最上段に抽出します。抽出すると mit-pthreads のサブディレクトリが作成されます。.

  • ほとんどのシステムで、MIT-pthreads を configure を --with-mit-threads オプションで実行すると使用できます。

    shell> ./configure --with-mit-threads
    

    このコードへの変更を最小限に抑えるために、MIT-pthreads を使用したソース以外のディレクトリでのビルドはサポートしていません。

  • MIT-pthreads の使用を決定するチェックはサーバのコードを処理する設定プロセスの実行中にのみ行われます。--without-server を使用してクライアント コードのみのビルドにディストリビューションを設定した場合、クライアントは MIT-pthreads を使用するどうかを判断できないため、デフォルトでUnix ソケット接続を使用します。なぜなら、Unix ソケットはプラットフォームによっては MIT-pthreads では動作しないため、クライアントのプログラムを実行する際、-h あるいは --host を localhost 以外の値で使用する必要があります。

  • MySQL を MIT-pthreads でコンパイルした場合、システム ロックはパフォーマンス上の理由でデフォルトで無効になります。システムロックを --external-locking オプションで使用するようにサーバに指定できます。2 台の MySQL サーバを同じデータ ファイルに稼動する場合にのみこれは必要ですが、いずれにしろこのやり方は推奨していません。

  • スレッド bind() コマンドがエラーメッセージ (少なくとも Solaris では) なしでソケットとのバインドに失敗する場合があります。その結果サーバへのすべての接続が失敗に終わります。例えば、

    shell> mysqladmin version
    mysqladmin: connect to server at '' failed;
    error: 'Can't connect to mysql server on localhost (146)'
    

    この問題を解決するには mysqld サーバを停止してそれを再起動します。これはサーバを強制的に停止して直ぐに再起動した場合にのみ起こります。

  • MIT-pthreads の使用により、sleep() のシステム コールの SIGINT (ブレーク) での割り込みはありません。これは mysqladmin --sleep を実行すると分かります。割り込みが行われプロセスが停止するまで sleep() コールが終了するのを待つ必要があります。

  • リンク時に以下の警告メッセージ (少なくとも Solaris で) が表示される場合がありますが、無視して構いません。

    ld: warning: symbol `_iob' has differing sizes:
        (file /my/local/pthreads/lib/libpthread.a(findfp.o) value=0x4;
    file /usr/lib/libc.so value=0x140);
        /my/local/pthreads/lib/libpthread.a(findfp.o) definition taken
    ld: warning: symbol `__iob' has differing sizes:
        (file /my/local/pthreads/lib/libpthread.a(findfp.o) value=0x4;
    file /usr/lib/libc.so value=0x140);
        /my/local/pthreads/lib/libpthread.a(findfp.o) definition taken
    
  • その他の警告も無視して構いません。

    implicit declaration of function `int strtoll(...)'
    implicit declaration of function `int strtoul(...)'
    
  • MIT-pthread と連動する readline はまだありません。(これは必要ありませんが、興味あるユーザーがいるかも知れません。)

Copyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates