ホームページ >データベース >mysql チュートリアル >Linux は mysqld_multi を使用して単一マシン上で複数の MySQL インスタンスを起動します

Linux は mysqld_multi を使用して単一マシン上で複数の MySQL インスタンスを起動します

黄舟
黄舟オリジナル
2017-03-10 11:13:231024ブラウズ

1. 背景の説明

以前は、mysql を使用する場合は、mysql スキーマを 1 つだけ使用するか、複数のスキーマを使用することがほとんどでしたが、それらは通常、同じデータベース インスタンス、つまり同じポートにありました。
mysql デュアルマシンの双方向ホット バックアップでは、マシン A (仮に A と呼びます) の myql スキーマをホット バックアップ (mysql レプリケーション) のマスター ノードとして使用し、バックアップされた mysql スキーマ (仮に B と呼びます) を使用する必要があります。 ) は別のマシン B に存在します。次に、双方向ホット バックアップでは、B をマスターとして設定し、A をスレーブとして設定する必要があります。これで、ホット バックアップが 2 回設定され、マシン A のホット バックアップが完了しました。 , そしてBさんの番です。マシン B にも mysql スキーマ (C) があり、これもマスターとして設定する必要があり、バックアップ スキーマはマシン A に配置されると述べましたが、ここで問題が発生します。バックアップの mysql スキーマ (B) には、ホットスタンバイの設定時にmysqlで設定されている。 この時点で、C がマスターとして構成されている場合、B の以前のマスター構成は上書きされ、C のバックアップ データベース (D) がマシン A 上でマスターとして構成されている場合、A はマスターとして構成されます。操作はカバーされています。
次に、このプロセスでは、スキーマ A と B の双方向ホット スタンバイの構成が、それぞれ 2 台のマシンのデフォルト ポート 3306 で完了します。スキーマ C と D の双方向ホット スタンバイを構成する場合は、異なる構成を行う必要があります。 2 台のマシンで設定を完了した mysql インスタンス (異なるポート番号) で、複数の mysql インスタンスを起動する場合の説明を次に示します。

2. 実装手順

(1) デフォルトでmysqlがインストールされ、基本的な設定が実装されています。

(2) my.cnf を設定します (この記事に関連する設定のみを記述します)

[mysqld_multi]

mysqld = /opt/mysql/server-5.6/bin/mysqld_safe #根据自己的mysql目录配置
mysqladmin = /opt/mysql/server-5.6/bin/mysqladmin

[mysqld1]
port = 3307
socket = /tmp/mysql.sock1
pid-file   = /opt/mysql/server-5.6/data3307/cloud3.pid3
basedir=/opt/mysql/server-5.6
datadir=/opt/mysql/server-5.6/data3307
log-bin=mysql1-9003-bin
user=cloud1

[mysqld2]
port = 3308
socket = /tmp/mysql.sock2
pid-file   = /opt/mysql/server-5.6/data3308/cloud3.pid2
basedir=/opt/mysql/server-5.6
datadir=/opt/mysql/server-5.6/data3308
log-bin=mysql2-9003-bin
user=cloud1

(3) データベース ディレクトリを初期化します (設定で指しているディレクトリに従って)

cd /opt/mysql/server-5.6/;./scripts/mysql_install_db --datadir=/opt/mysql/server-5.6/data3307 --user=cloud1
cd /opt/mysql/server-5.6/;./scripts/mysql_install_db --datadir=/opt/mysql/server-5.6/data3308 --user=cloud1

初期化が成功したら [OK] をクリックしますプロンプトが表示される場合は、データベース ディレクトリにアクセス許可があるかどうかを確認してください。

(4) インスタンスを起動します

次のパラメータを使用して mysqld_multi を起動します: (注: このコマンドは mysql の bin ディレクトリにあります)。

 mysqld_multi [options] [GNR[,GNR]...]

開始、停止、レポートは、実行したい操作を参照してください。オプションに続く GNR リストとは区別して、単一のサービスまたは複数のサービスに対する操作を指定できます。 GNR リストが指定されていない場合、mysqld_multi はすべてのサービスのオプション ファイルに従って動作します。
各 GNR の値は、グループのシーケンス番号、またはグループのシーケンス番号の範囲です。この項目の値はグループ名の最後の数字である必要があります。たとえば、グループ名が mysqld17 の場合、この項目の値は 17 です。範囲を指定する場合は、「-」(ダッシュ) を使用して 2 つの数値を接続します。 GNR の値が 10 ~ 13 の場合、グループ mysqld10 ~ グループ mysqld13 を参照します。

mysqld_multi --defaults-file=/opt/mysql/server-5.6/my.cnf start 1-2
或者
mysqld_multi --defaults-file=/opt/mysql/server-5.6/my.cnf start 1
mysqld_multi --defaults-file=/opt/mysql/server-5.6/my.cnf start 2

(5) パスワードを変更してログイン

mysqladmin -u root -p -P 3307 -S /tmp/mysql.sock1 password  //刚开始默认没有密码,如果要输入密码,直接回车
mysql -u root -p -P 3307 -S /tmp/mysql.sock1

以上がLinux は mysqld_multi を使用して単一マシン上で複数の MySQL インスタンスを起動しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。