場合によっては、同じマシン上で複数の
      mysqld
      サーバを実行することが必要になります。たとえば、既存の稼働環境のままにして、新しい
      MySQL
      リリースをテストしたい場合が考えられます。
      また、ユーザごとに異なる mysqld
      サーバへのアクセス権を与える場合などもあります(たとえば、顧客ごとに独立した
      MySQL
      インストールを提供するインターネットサービスプロバイダなど)。
    
      単一のマシン上で複数のサーバを実行するには、いくつかのパラメータでサーバ固有の値を設定する必要があります。これらはコマンドラインまたはオプション設定ファイルで設定できます。
      項4.1.1. 「mysqld コマンドラインオプション」 および
      項4.1.2. 「my.cnf オプション設定ファイル」 を参照してください。
    
少なくとも以下のオプションはサーバごとに異なります。
          --port=port_num
        
          --socket=path
        
          --shared-memory-base-name=name(Windows
          のみ、MySQL 4.1 で導入)
        
          --pid-file=path(Unix のみ)
        
      --port は、TCP/IP
      接続のポート番号を制御します。
      --socket は、Unix
      ではソケットファイルパスを、Windows
      では名前付きパイプの名前を制御します(名前付きパイプ接続をサポートしているサーバに対してのみ、Windows
      上で一意のパイプ名を指定する必要があります)。
      --shared-memory-base-name は、Windows
      サーバが使用する共有メモリ名を指定します。これにより、クライアントはその共有メモリを介して接続できるようになります。
      --pid-file は、Unix サーバがプロセス ID
      を書き込むファイルの名前を示します。
    
以下のオプションを使用する場合、サーバごとに異なる値を設定する必要があります。
          --log=path
        
          --log-bin=path
        
          --log-update=path
        
          --log-error=path
        
          --log-isam=path
        
          --bdb-logdir=path
        
パフォーマンスを高めるには、以下のオプションをサーバごとに個別に設定し、負荷を複数のディスクに分散します。
          --tmpdir=path
        
          --bdb-tmpdir=path
        
複数のテンポラリディレクトリを上記のように設定し、どの MySQL サーバにどのテンポラリファイルが属するのかわかりやすくしておくことを推奨します。
      一般的に、データディレクトリについても、各サーバが異なるディレクトリを使用するようにします。これは
      --datadir=path
      オプションで指定します。
    
警告: 2 つのサーバから同じデータベースのデータを更新しないようにしてください。使用しているオペレーティングシステムが障害からの保護をおこなうようなシステムロックをサポートしていない場合、予期しない事態が発生する可能性があります。また、複数のサーバが同じデータディレクトリを使用し、ログが有効になっている場合、適切なオプションを使用して各サーバに異なるログファイル名を指定する必要があります。そうしないと、サーバは同じファイルにログしてしまいます。
サーバ間でのデータディレクトリ共有に関するこの警告は、NFS 環境にも当てはまります。NFS 環境で複数の MySQL サーバに同じデータディレクトリへのアクセスを認めることは避けてください。
主要な問題は、NFS が速度のボトルネックになること。 NFS はそのような使用を考慮していない。
          2
          つ以上のサーバが互いに干渉しないようにすることも困難。通常、NFS
          ファイルロックは lockd
          デーモンによって処理されるが、現在のところ、どのような状況でも
          100%
          の信頼性でロックを実行できるプラットフォームは存在しない。
        
簡単な方法を選択してください。NFS で複数のサーバにデータディレクトリを共有させるアイデアは良いアイデアではありません。 また、複数の CPU を持つ 1 台のコンピュータを用意し、スレッドを効率的に処理するオペレーティングシステムを使用することを推奨します。
      複数の MySQL
      インストールを異なるロケーションで行う場合、--basedir=path
      オプションを使用して各サーバに対してベースディレクトリを指定し、各サーバがそれぞれ別のデータディレクトリ、ログファイル、および
      PID
      ファイルを使用するようにできます(これらの値のデフォルトは、ベースディレクトリに相対して決定されます)。その場合、他に指定する必要があるオプションは
      --socket と --port
      だけです。たとえば、.tar
      ファイルバイナリディストリビューションを使用して
      MySQL
      の複数のバージョンをインストールするとします。これらは別々のロケーションにインストールされるので、対応するベースディレクトリ以下で
      ./bin/mysqld_safe
      コマンドを使用して、各インストールのサーバを起動することができます。
      mysqld_safe が、mysqld
      に渡す適切な --basedir
      オプションを特定するので、--socket
      オプションと --port オプションを
      mysqld_safe
      に設定するだけで済みます。
    
以下のセクションで説明するように、環境変数の設定または適切なコマンドラインオプションの指定により、追加サーバを起動することが可能です。ただし、より永続的に複数のサーバを実行する必要がある場合には、オプション設定ファイルを使用して各サーバ固有のオプション値を指定する方法が便利です。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

