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


MySQL 5.6 リファレンスマニュアル  /  MySQL サーバーの管理  /  1 つのマシン上での複数の MySQL インスタンスの実行

5.3 1 つのマシン上での複数の MySQL インスタンスの実行

状況によっては、MySQL の複数インスタンスを単一マシン上で実行する場合もあります。既存の本番設定をそのままにして、新しい MySQL リリースをテストすることもできます。または、ユーザーが自分で管理する異なる mysqld サーバーへのアクセス権を別々のユーザーに与える場合もあります。(たとえば、ユーザーは独立した MySQL インストールを異なるカスタマ用に提供するインターネットサービスプロバイダである場合もあります。)

インスタンスごとに異なる MySQL Server バイナリを使用したり、複数のインスタンスに対して同じバイナリを使用したり、この 2 つの方法を組み合わせたりすることが可能です。たとえば、MySQL 5.5 と MySQL 5.6 からそれぞれサーバーを実行し、異なるバージョンによって所定のワークロードがどのように処理されるかを確認することもできます。または、現在の本番バージョンの複数インスタンスを実行し、それぞれが異なるデータベースのセットを管理する場合もあります。

別個のサーバーバイナリを使用するかどうかにかかわらず、実行する各インスタンスは、いくつかの操作パラメータについて一意の値を使用して構成される必要があります。これにより、インスタンス間で競合するおそれがなくなります。パラメータは、コマンド行、オプションファイル、または環境変数の設定によって設定できます。セクション4.2.3「プログラムオプションの指定」を参照してください。所定のインスタンスによって使用される値を表示するには、インスタンスに接続して、SHOW VARIABLES ステートメントを実行します。

MySQL インスタンスによって管理される主なリソースは、データディレクトリです。各インスタンスが異なるデータディレクトリを使用するようにし、その場所は --datadir=path オプションを使用して指定されます。各インスタンスをインスタンス独自のデータディレクトリで構成する方法と、構成を行わないことの危険についての警告は、セクション5.3.1「複数のデータディレクトリのセットアップ」を参照してください。

異なるデータディレクトリを使用することに加えて、いくつかのほかのオプションは、各サーバーインスタンスについて異なる値を持つ必要があります。

  • --port=port_num

    --port は、TCP/IP 接続のポート番号を制御します。または、ホストに複数のネットワークアドレスがある場合、--bind-address を使用して、各サーバーが異なるアドレスを待機するようにすることができます。

  • --socket=path

    --socket は、Unix 上の Unix ソケットファイルパスまたは Windows 上の名前付きパイプ名を制御します。Windows の場合、名前付きパイプ接続を許可するように構成されたサーバーについてのみ、個別のパイプ名を指定することが必要です。

  • --shared-memory-base-name=name

    このオプションは Windows でのみ使用されます。これは、クライアントが共有メモリーを使用して接続できるようにするために、Windows サーバーによって使用される共有メモリー名を指定します。共有メモリー接続を許可するように構成されたサーバーについてのみ、個別の共有メモリー名を指定することが必要です。

  • --pid-file=file_name

    このオプションは、サーバーがプロセス ID を書き込むファイルのパス名を示します。

次のログファイルオプションを使用した場合、これらの値はサーバーごとに異なっている必要があります。

  • --general_log_file=file_name

  • --log-bin[=file_name]

  • --slow_query_log_file=file_name

  • --log-error[=file_name]

ログファイルオプションについての詳細な説明は、セクション5.2「MySQL Server ログ」を参照してください。

パフォーマンスを高めるには、次のオプションをサーバーごとに異なるやり方で指定して、いくつかの物理ディスクに負荷を分散させることができます。

  • --tmpdir=path

異なる一時ディレクトリを作成すると、特定の一時ファイルを作成した MySQL Server を判別しやすくなります。

複数の MySQL インストールが異なる場所にある場合、--basedir=path オプションを使用して、インストールごとの基本ディレクトリを指定することができます。これにより、各インスタンスは自動的に異なるデータディレクトリ、ログファイル、および PID ファイルを使用します。この理由は、これらの各パラメータのデフォルトが、基本ディレクトリに対して相対的に指定されるためです。この場合、指定する必要があるほかのオプションは、--socket および --port オプションのみです。tar ファイルバイナリ配布を使用して、異なるバージョンの MySQL をインストールするとします。これらは別の場所にインストールされるため、各インストールについてのサーバーを、対応する基本ディレクトリの下でコマンド bin/mysqld_safe を使用して開始することができます。mysqld_safe によって、mysqld に渡される適切な --basedir オプションが決定され、--socket および --port オプションのみを mysqld_safe に指定する必要があります。

あとのセクションで説明するように、適切なコマンドオプションを指定するか、環境変数を設定することによって、追加のサーバーを開始することができます。ただし、複数のサーバーをより永続的に実行する必要がある場合は、オプションファイルを使用して、サーバーに一意となる必要があるオプション値を各サーバーに指定する方が簡単です。--defaults-file オプションは、このために役立ちます。


User Comments
  Posted by Lasantha Aberathna on September 13, 2012
If you are looking for step by step explanation about running multiple instance of MySQL on same machine, Please follow http://lasanthals.blogspot.com/2012/09/running-multiple-instances-of-mysql-on.html
  Posted by Bert Hutzler on May 8, 2013
ok, the procedure described in the blog works, but that's not that multi_mode thing. I think you get some more features with the latter one...
Sign Up Login You must be logged in to post a comment.