mysqld_multi は、さまざまな Unix
        ソケットおよび TCP/IP
        ポートをリッスンする複数の
        mysqld
        プロセスを管理するためのプログラムです。
      
        このプログラムは、[mysqld#]
        という名前のグループを
        my.cnf(または
        --config-file=...
        オプションで指定されたファイル)から検索します。ここで、#
        は 1
        で始まる任意の正の数です。この番号は、以下の説明ではオプショングループ番号、または
        GNR
        と呼びます。グループ番号はオプショングループを識別し、起動したり、停止したり、またはステータス情報を取得するサーバを指定する
        mysqld_multi
        の引数として使用します。これらのグループに含まれるオプションは、mysqld
        の起動に使用される通常の [mysqld]
        グループと同じです(項2.4.3. 「MySQL を自動的に起動および停止する」
        などを参照してください)。ただし、mysqld_multi
        では、各グループに、各 mysqld
        プロセスで使用されるポートやソケットなどを指定するオプションが含まれていることが必要です。
      
        mysqld_multi
        は、以下の構文で起動します。
      
   mysqld_multi [OPTIONS] {start|stop|report} [GNR,GNR,GNR...]
か mysqld_multi [OPTIONS] {start|stop|report} [GNR-GNR,GNR,GNR-GNR,...]
各 GNR は、オプショングループ番号を表します。任意の GNR を開始、停止、または報告でき、複数の GNR を同時に開始、停止、または報告することもできます。オプション設定ファイルの設定例を表示するには、以下のコマンドを実行します。
shell> mysqld_multi --example
リスト内の GNR の値はコンマで区切ったり、ダッシュ記号で結合できます。結合の場合、GNR1-GNR2 間のすべての GNR が対象になります。GNR 引数を指定しなかった場合、リスト内のすべてのグループが起動、停止、または報告されます。注意: GNR リストには空白スペースを使用できません。空白スペースを挿入すると、スペースの後は無視されます。
        mysqld_multi
        は、以下のオプションをサポートします。
      
            代替設定ファイル。注意:
            これは、このプログラムのオプション([mysqld_multi]
            グループ)には影響せず、[mysqld#]
            グループにのみ影響する。このオプションがない場合、通常の
            my.cnf
            ファイルからすべてが検索される。
            
          
            --example
          
            --help
          
            --log=...
          
            --mysqladmin=...
          
            --mysqld=...
          
            使用する mysqld
            バイナリ。注意: このオプションに
            mysqld_safe
            を指定することもできる。このオプションは、mysqld
            に渡される。環境変数 PATH が
            mysqld
            を指定していることを確認するか、mysqld_safe
            を修正する。
            
          
            --no-log
          
            --password=...
          
            --tcp-ip
          
Unix ソケットではなく、TCP/IP ポートで各 MySQL サーバに接続する。これは、サーバの停止と報告に影響する。ソケットファイルがなくてもサーバはまだ実行可能であるが、TCP/IP ポート経由のアクセスに限られる。デフォルトでは、Unix ソケットが使用される。
            --user=...
          
            --version
          
バージョン番号を出力して終了する。
        mysqld_multi に関する補足コメント
      
            mysqladmin
            プログラムなどを使用して
            mysqld サービスを停止する MySQL
            ユーザのパスワードとユーザ名が、アクセスされるすべてのデータディレクトリ(mysql
            データベースへのアクセス)用のパスワードとユーザ名と同じであることを確認すること。また、ユーザに
            SHUTDOWN
            権限があることも確認する。多くのデータディレクトリがあり、MySQL
            root
            ユーザのパスワードが異なる多くの
            mysql
            データベースがある場合、以下のように同じパスワードを使用する共通
            multi_admin
            ユーザを作成できる。以下、その例。
shell> mysql -u root -S /tmp/mysql.sock -proot_password -e
"GRANT SHUTDOWN ON *.* TO multi_admin@localhost IDENTIFIED BY 'multipass'"
            See 項4.3.6. 「権限システムはどのように機能するか」。
            各データディレクトリで実行する各
            mysqld
            に対してこのコマンドを実行する必要がある(ソケット
            -S=... のみ変更する)。
          
            pid-file
            は、mysqld_safe を使用して
            mysqld
            を起動する場合(たとえば、--mysqld=mysqld_safe)非常に重要である。すべての
            mysqld に独自の
            pid-file が必要である。ここで
            mysqld を直接使用せずに
            mysqld_safe
            を使用する利点は、kill -9
            で送信されるシグナルや、その他セグメント化エラー(MySQL
            では発生してはいけないことだが)などによって
            mysqld
            プロセスが強制終了した場合でも、mysqld_safe
            がすべての mysqld プロセスを
            ``保護'' し、再起動することである。注意:
            mysqld_safe
            スクリプトは、特定の場所から起動することが必要な場合がある。つまり、mysqld_multi
            を開始する前に、特定のディレクトリに
            cd
            することが必要な場合がある。起動時に問題が発生した場合は、mysqld_safe
            スクリプトを確認のこと。特に以下の行をチェックする。
          
-------------------------------------------------------------------------- MY_PWD=`pwd` Check if we are starting this relative (for the binary release) if test -d /data/mysql -a -f ./share/mysql/english/errmsg.sys -a \ -x ./bin/mysqld --------------------------------------------------------------------------
            See 項4.8.2. 「mysqld_safe(mysqld
        のラッパ)」。
          
上記のテストがうまくいかなければ、問題が発生する可能性がある。
            同じデータディレクトリで、複数の
            mysqld
            サーバを開始することには危険が伴う。完全に理解していない限り、別々のデータディレクトリを使用すべきである。
          
            各 mysqld
            に対して異なるソケットファイルと TCP/IP
            ポートが指定されていることが必要である。
          
            1 番目と 5 番目の mysqld
            グループは、例から意図的に除外してある。設定ファイルには
            '空行'
            を入れておくことが可能である。これにより、柔軟性が高まる。mysqlds
            の開始と停止の順序は、設定ファイルでの順序に依存する。
          
            このプログラムで GNR
            を使用して特定グループを参照するには、グループ名の最後で番号を指定する。
            たとえば、[mysqld17]
            という名前のグループの GNR は 17 である。
          
            mysqld で --user
            オプションを使用するには、mysqld_multi
            スクリプトを Unix root
            ユーザとして実行する必要がある。設定ファイルにこのオプションがあっても問題はない。スーパーユーザでないユーザが自分の
            Unix アカウントで mysqld
            を開始している場合でも、警告が発生するだけである。重要:
            特定の mysqld
            プロセスを開始しているその
            Unix ユーザが pid-file
            およびデータディレクトリの読み取り権限と書き込み権限を(データディレクトリの場合は実行権限も)持っていることを確認すること。完全に理解していない限り、この目的で
            Unix root
            アカウントを使用してはいけない。
          
            最重要:
            mysqld
            サーバに渡されるオプションの意味、および
            mysqld
            プロセスを個別に使用する方が望ましい理由を理解しておくこと。同じデータディレクトリで複数のサーバを起動しても、スレッドシステムではパフォーマンスの向上は望めない。
          
See 項4.2. 「同じマシン上で複数の MySQL サーバを実行する」。
        以下、mysqld_multi
        の設定が含まれる設定ファイルの例です。
      
# This file should probably be in your home dir (~/.my.cnf) or /etc/my.cnf # Version 2.1 by Jani Tolonen [mysqld_multi] mysqld = /usr/local/bin/mysqld_safe mysqladmin = /usr/local/bin/mysqladmin user = multi_admin password = multipass [mysqld2] socket = /tmp/mysql.sock2 port = 3307 pid-file = /usr/local/mysql/var2/hostname.pid2 datadir = /usr/local/mysql/var2 language = /usr/local/share/mysql/english user = john [mysqld3] socket = /tmp/mysql.sock3 port = 3308 pid-file = /usr/local/mysql/var3/hostname.pid3 datadir = /usr/local/mysql/var3 language = /usr/local/share/mysql/swedish user = monty [mysqld4] socket = /tmp/mysql.sock4 port = 3309 pid-file = /usr/local/mysql/var4/hostname.pid4 datadir = /usr/local/mysql/var4 language = /usr/local/share/mysql/estonia user = tonu [mysqld6] socket = /tmp/mysql.sock6 port = 3311 pid-file = /usr/local/mysql/var6/hostname.pid6 datadir = /usr/local/mysql/var6 language = /usr/local/share/mysql/japanese user = jani
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.

