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


5.3.3 Unix 上での複数の MySQL インスタンスの実行

Unix 上で複数の MySQL インスタンスを実行するための 1 つの方法は、デフォルトの TCP/IP ポートおよび Unix ソケットファイルが異なる別々のサーバーをコンパイルして、それぞれのサーバーが別々のネットワークインタフェースを待機するようにすることです。インストールごとに異なる基本ディレクトリ内にコンパイルすることで、コンパイル済みのデータディレクトリ、ログファイル、および PID ファイルの場所がサーバーごとに自動的に別々になります。

デフォルトの TCP/IP ポート番号 (3306) および Unix ソケットファイル (/tmp/mysql.sock) に対して既存の 5.5 サーバーが構成されていると仮定します。別の操作パラメータを持つ新しい 5.6.23 サーバーを構成するには、次のような CMake コマンドを使用します。

shell> cmake . -DMYSQL_TCP_PORT=port_number \
             -DMYSQL_UNIX_ADDR=file_name \
             -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.23

ここで、port_number および file_name は、デフォルトの TCP/IP ポート番号および Unix ソケットファイルパス名と異なっている必要があり、CMAKE_INSTALL_PREFIX 値は、既存の MySQL インストールが存在する場所とは異なるインストールディレクトリを指定します。

MySQL Server が所定のポート番号を待機している場合、次のコマンドを使用して、基本ディレクトリおよび Unix ソケットファイル名などのいくつかの重要な構成可能変数に対して MySQL Server が使用中の操作パラメータを検出できます。

shell> mysqladmin --host=host_name --port=port_number variables

このコマンドによって表示される情報を使用すれば、追加のサーバーを構成するときに使用しないオプション値を見分けることができます。

ホスト名として localhost を指定した場合、mysqladmin は TCP/IP ではなく Unix ソケットファイル接続をデフォルトで使用します。接続プロトコルを明示的に指定するには、--protocol={TCP|SOCKET|PIPE|MEMORY} オプションを使用します。

異なる Unix ソケットファイルおよび TCP/IP ポート番号を使用して起動するためだけの理由で新しい MySQL Server をコンパイルする必要はありません。同じサーバーバイナリを使用し、実行時に異なるパラメータ値を使用してそれぞれのバイナリの起動を開始することも可能です。これを行う 1 つの方法は、コマンド行オプションを使用する方法です。

shell> mysqld_safe --socket=file_name --port=port_number

2 番目のサーバーを起動するには、異なる --socket および --port オプション値を指定し、mysqld_safe--datadir=path オプションを渡すことによってサーバーが異なるデータディレクトリを使用するようにします。

または、サーバーごとのオプションを別々のオプションファイルに配置し、適切なオプションファイルへのパスを指定する --defaults-file オプションを使用して各サーバーを起動します。たとえば、2 つのサーバーインスタンスのオプションファイルの名前が /usr/local/mysql/my.cnf および /usr/local/mysql/my.cnf2 の場合、次のようなコマンドでサーバーを起動します。

shell> mysqld_safe --defaults-file=/usr/local/mysql/my.cnf
shell> mysqld_safe --defaults-file=/usr/local/mysql/my.cnf2

同様な効果を得るための別の方法は、環境変数を使用して Unix ソケットファイル名および TCP/IP ポート番号を設定する方法です。

shell> MYSQL_UNIX_PORT=/tmp/mysqld-new.sock
shell> MYSQL_TCP_PORT=3307
shell> export MYSQL_UNIX_PORT MYSQL_TCP_PORT
shell> mysql_install_db --user=mysql
shell> mysqld_safe --datadir=/path/to/datadir &

これはテスト用に使用するための 2 番目のサーバーを起動する簡単な方法です。この方法の利点は、同じシェルから起動するすべてのクライアントプログラムに対して環境変数設定が適用されるということです。したがって、これらのクライアントに対する接続は 2 番目のサーバーに自動的に送信されます。

MySQL プログラムに影響を及ぼすために使用できるほかの環境変数のリストは、セクション2.12「環境変数」に記載されています。

Unix の場合、複数のサーバーを起動する別の方法として、mysqld_multi スクリプトがあります。セクション4.3.4「mysqld_multi — 複数の MySQL サーバーの管理」を参照してください。


User Comments
  Posted by Giuseppe Maxia on July 15, 2008
A quick way of setting up one MySQL instance without manually fiddling with the configuration is the MySQL Sandbox
(https://launchpad.net/mysql-sandbox)

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