MySQL 5.1 リファレンスマニュアル :: 4 データベース管理 :: 4.12 同じマシン上での複数 MySQL サーバの実行 :: 4.12.2 Unix で複数サーバの実行
« 4.12.1.2 複数の Windows サーバをサービスとして起動

4.12.3 複数サーバ環境でのクライアントプログラムの使用 »
Section Navigation      [Toggle]
  • 4.12 同じマシン上での複数 MySQL サーバの実行
  • 4.12.1 Windows で複数サーバの実行
  • 4.12.2 Unix で複数サーバの実行
  • 4.12.3 複数サーバ環境でのクライアントプログラムの使用

4.12.2. Unix で複数サーバの実行

Unix で複数のサーバを実行する最も簡単な方法は、異なる TCP/IP ポートと Unix ソケット ファイルでサーバをコンパイルすることです。これは、それぞれが異なるネットワークのインターフェースとしてリストします。それぞれのインストールに対して、異なるベース ディレクトリにコンパイルすることも、コンパイルしたデータ ディレクトリ、ログ ファイル、PID ファイル場所を、サーバごとに自動的に切り離す結果を生みます。

ここでは、既存の MySQL 5.0.19 サーバをデフォルトの TCP/IP ポート番号 (3306) と Unix ソケットファイル (/tmp/mysql.sock) で設定していると想定します。MySQL 5.1.15-beta サーバの設定で、異なる操作パラメータを持たせるには、configure コマンドを次のように使用します。

shell> ./configure --with-tcp-port=port_number \
             --with-unix-socket-path=file_name \
             --prefix=/usr/local/mysql-5.1.15-beta

ここで、port_number と file_name は、デフォルトの TCP/IP ポート番号と Unix ソケット ファイルのパスとは異なる必要があります。--prefix 値は、既存の MySQL をインストールしたディレクトリとは異なるディレクトリに指定します。

MySQL サーバに特定のポート番号をリストしている場合は、次のコマンドを使用して、重要な設定可能変数において、ベース ディレクトリおよび Unix ソケット ファイル名を含め、どの操作パラメータをそこで使用しているかを確認します。

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

このコマンドで表示する情報を元に、追加サーバを設定するときに 使用できない オプション値がどれであるかを確認します。

ノート: localhost をホスト名として指定する場合、mysqladmin は TCP/IP ではなく Unix ソケット ファイルでの接続に初期化します。MySQL 4.1 以降では、使用する接続プロトコルを、--protocol={TCP|SOCKET|PIPE|MEMORY} オプションを使用して指定することができます。

新しい MySQL サーバを、単に異なる Unix ソケット ファイルと TCP/IP ポート番号で起動するためだけにコンパイルする必要はありません。同一のサーバのバイナリを使用して、ランタイムに別々のパラメータ値で、それぞれの起動 (呼び出し) を行うことができます。これを行う 1 つの方法としては、次のように、コマンドライン オプションを使用します。

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

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

同様の効果を成す別の方法としては、環境変数を使用して、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 番目のサーバになります。

項2.14. 「環境変数」 では、mysqld に反映する環境変数のリストについて説明しています。

自動的なサーバ実行では、ブートしたときに実行する起動スクリプトが次のコマンドが、それぞれのコマンドに該当するオプション ファイルのパスで、それぞれのサーバの対して一度実行します。

shell> mysqld_safe --defaults-file=file_name

それぞれのオプション ファイルには、特定のサーバ固有のオプション値があります。

Unix では、この mysqld_multi スクリプトで複数のサーバを起動することが 1 つの方法といえます。項4.3.3. 「mysqld_multi — 複数のMySQL サーバ管理」 を参照してください。

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