1 つのシステムに複数のサーバーをセットアップするために必要な手順は、ほんのわずかです。最初に、MySQL の構成ファイルを調整する必要があります。サーバーごとに個別のオプション グループを入力する必要があります。少なくとも、各サーバーには一意の TCP/IP ポートと、異なるソケット ファイルのいずれかを割り当てる必要があります。
構成ファイル内の複数のサーバーのサーバー グループは、mysqld プレフィックスとそれに続く番号サフィックスによって識別されます。たとえば、最初のサーバーは [mysqld1] のようなグループ見出しで識別される場合があり、0 またはその他の番号で開始できます。 2 番目のサーバーは [mysqld2] です。番号自体は連続している必要はありません。番号はスキップされる場合があります。 [mysqld] グループに指定できるすべてのオプションは、任意の追加サーバーに指定できます。これにより、サーバー オプションを変更して、データベースに必要な特別な要件を満たすことができます。以下は /etc/my.cnf の内容です 3 つのサーバー用に構成されたファイル。
注意 :各インスタンスにも独自の datadir が必要であることに注意することが非常に重要です。少なくとも、各サーバーには一意の TCP/IP ポートおよび/または異なるソケット ファイルを割り当てる必要があります。# vi /etc/my.cnf [mysqld_multi] mysqld = /usr/local/bin/mysqld_safe [mysqld0] port = 3306 socket = /tmp/mysql.sock0 pid-file = /usr/local/mysql/server0/ user = mysql0 datadir = /usr/local/mysql/server0 [mysqld1] port = 3307 socket = /tmp/mysql.sock1 pid-file = /usr/local/mysql/server1/ user = mysql1 datadir = /usr/local/mysql/server1 [mysqld2] port = 3308 socket = /tmp/mysql.sock2 pid-file = /usr/local/mysql/server2/ user = mysql2 datadir = /usr/local/mysql/server2
まず、[mysqld] というラベルの付いたグループがないことに注意してください。 .それは物事を混乱させるでしょう。この構成ファイルでは、各サーバーが異なるポートを使用します。これには、サーバーにアクセスするすべてのスクリプトを調整する必要があります。デフォルトのポート (3306) になるように、ポートを指定する必要があります。 ) は使用しません。上記の最初のサーバーは、デフォルトのポートを使用します。この例では、サーバーごとに個別のファイル システム ユーザーが指定されています。これは必要ありません。ただし、セキュリティ制御の向上には役立ちます。もちろん、ファイル システム レベルで各システム ユーザーを作成する必要があります。
上記の構成ファイルの各グループに設定された最後のオプションは、各サーバーのデータ ディレクトリです。サーバーは同じデータ ディレクトリを共有できません。そのため、ファイル システム上に別のディレクトリを作成する必要があります。データ ディレクトリの所有権をそれぞれのシステム ユーザー (例:mysql0) に変更してください。
構成ファイルが適切に設定され、システム ユーザーが作成され、関連するディレクトリが配置されると、サーバーを起動できます。これを簡単に行うには、mysqld_multi 脚本。このスクリプトは、MySQL 構成ファイルを読み取り、前述の命名規則に従ってサーバー グループを探します。すべてのサーバーを起動するには、コマンドラインから次のように入力します:
$ mysqld_multi start
この行は、構成ファイルにリストされているサーバー グループごとに mysqld_safe の個別のインスタンスを開始します。ちなみに、mysqld_multi 用の特別な構成ファイルを使用するには、「–config-file =file」を追加するだけです。 」 オプションを start パラメータの前に追加します。すべてのサーバーを停止するには、start パラメータを stop に置き換えます。サーバー ステータス レポートには、レポート パラメータを使用します。特定のサーバーを起動するには、start パラメータの後にサーバーの識別番号を指定します。たとえば、前に示した構成ファイルで [mysqld2] というラベルの付いたサーバーを停止するには、次のように入力します。
$ mysqld_multi stop 2
mysqld プレフィックスは省略されています。サーバーの範囲は、最初のサーバーの番号、その後にダッシュ、最後のサーバーの番号を指定することで名前を付けることができます (例:2-5)。サーバーは、識別子をカンマで区切ることで個別にリストできます (例:2, 4)。また、両方の方法を組み合わせて使用することもできます (例:2、4-7)。
構成ファイルの作成方法のより長い例については、コマンドラインから次のように入力してください:
$ mysqld_multi --example