1 台のマシンで 2 つの mysql サービスを開始するにはどうすればよいですか
? 2 つのデータベースに対応する 2 つの mysql サービスを 1 台のマシンで実行するにはどうすればよいですか?
ベストアンサー
Jul 26 10:36 同じマシン上で複数のサーバーを実行したい場合があります。たとえば、既存の実稼働システムのセットアップに影響を与えることなく、新しい MySQL バージョンをテストしたい場合や、さまざまな顧客に独立した MySQL インストールを提供したいインターネット サービス プロバイダーである場合があります。
複数のサーバーを実行する場合、最も簡単な方法は、異なる TCP/IP ポートとソケット ファイルを使用してサーバーを再コンパイルし、同じ TCP/IP ポートまたはソケットでリッスンしないようにすることです。
既存のサーバーがデフォルトのポート番号とソケット ファイルで構成されていると仮定して、次のようなconfigureコマンド ラインを使用して新しいサーバーをセットアップします。shell
> ./configure --with-tcp-port=port_number
--with-unix-socket=ファイル名
--prefix=/usr/local/mysql-3.22.9
ここで、port_number と file_name はデフォルトのポート番号とソケット ファイルのパス名とは異なる必要があり、 --prefix 値は既存の MySQL インストール テーブルとは異なるインストールを指定する必要があります。コンテンツ。
次のコマンドを使用して、現在実行中の MySQL で使用されているソケットとポートを確認できます。shell
> mysqladmin -h hostname --port=port_number 変数
使用しているポートで MySQL サーバーが実行されている場合は、次のテーブルが得られます。ソケット名などを含む、MySQL の最も重要な構成可能な変数の一部。
また、マシンの init スクリプト (おそらく「mysql.server」) を編集して、複数の mysqld サーバーを起動および停止する必要があります。
新しい MySQL サーバーを再コンパイルする必要はなく、別のポートとソケットで起動するだけです。実行時に、safe_mysqld によって使用されるオプションを指定することで、ポートとソケットを変更できます:
ログ記録が有効になっている別のサーバーと同じサーバー上にある場合は、
shell> /path/to/safe_mysqld --socket=file_name --port=port_number
データベース ディレクトリに新しいサーバーを追加する場合は、safe_mysqld の --log および --log-update オプションを使用してログ ファイルの名前も指定する必要があります。そうしないと、両方のサーバーが同じログ ファイルに書き込もうとする可能性があります。
警告: 通常、2 つのサーバーで同じデータベース内のデータを更新しないでください。ご使用の OS が完全なシステム ロックをサポートしていない場合、驚くべき事態が発生する可能性があります。
2 番目のサーバーに別のデータベース ディレクトリを使用する場合は、safe_mysqld の --datadir=path オプションを使用できます。
良い
50% (0) 悪い
50%(0)