ホームページ  >  記事  >  データベース  >  Mysql 5.7 Docker マスター/スレーブ レプリケーション アーキテクチャチュートリアル_MySQL

Mysql 5.7 Docker マスター/スレーブ レプリケーション アーキテクチャチュートリアル_MySQL

WBOY
WBOYオリジナル
2016-09-09 08:13:391025ブラウズ

参考のために mysql 5.7 docker マスター/スレーブ レプリケーション アーキテクチャ チュートリアルを共有します。具体的な内容は次のとおりです

環境バージョン:
MySQL: 5.7.13
ドッカー: 1.11.2
CentOS : 7.1

1. まず、2 つの MySQL を 2 つの物理マシンにインストールします。コマンドは次のとおりです。

コードは次のとおりです:

docker pull mysql:5.7.13

docker run --name anuo-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=qaz.00JK -d mysql:5.7.13



2. メインライブラリにコピーアカウントを作成します

コードは次のとおりです:

GRANT REPLICATION SLAVE ON *.* TO 'rep1'@'192.168.2.103' IDENTIFIED BY 'qaz.00JK';

コピーされたアカウントは: rep1

指定されたスレーブ ライブラリの IP は 192.168.2.103 である必要があります
パスワードをコピー: qaz.00JK


3. メインライブラリの設定ファイルを変更します

(面倒なのでもっと便利な変更方法があるはずです)
3.1 まず、構成ファイルを docker からホスト/ルート ディレクトリにコピーします。

docker cp anuo-mysql:/etc/mysql/my.cnf /root


3.2 ホスト上で my.cnf を開き、[mysqld] ノードの末尾に

を追加します

log-bin=mysql-bin

サーバーID=1



3.3 次に、このファイルを docker mysql にアップロードして上書きします

docker cp /root/my.cnf anuo-mysql:/etc/mysql/my.cnf


3.4 mysqlのdockerを再起動して設定を有効にします

docker restart anuo-mysql



4.スレーブライブラリの設定ファイルを変更します


ステップ 3 と同じですが、唯一の違いは

サーバーID=2



5. バックアップを開始します。

メイン データベースで次のコマンドを実行して、マスター データベースとスレーブ データベース間のデータの整合性を確保するために、メイン データベースのすべてのテーブルを読み取り専用で書き込み不可の状態にします。 読み取りロック付きテーブルをフラッシュします


6. メインデータベースのデータベースをバックアップし、スレーブデータベースから復元します

mysqlにはnavicatを使うととても便利です


7. スレーブライブラリから復元後、メインライブラリの読み取りロックを解除し、メインライブラリの書き込み許可を復元します


テーブルのロックを解除します。

8. メインライブラリに接続し、スレーブライブラリ上で実行するようにスレーブライブラリを設定します

リーリー 最後の 2 つのアイテム

MASTER_LOG_FILE と MASTER_LOG_POS

メインライブラリで SHOW MASTER STATUS コマンドを実行して

を取得します。 対応するフィールドはファイルと位置です




9. スレーブライブラリでスレーブスレッドを開始して同期を開始します

スレーブを開始します;


10.スレーブライブラリの同期ステータスを確認します

スレーブのステータスを表示します。 Slave_Io_State フィールドが表示された場合:

マスターがイベントを送信するのを待っています...
そしたら大成功でした!!

以上がこの記事の全内容です。皆様の学習に少しでもお役に立てれば幸いです。よろしくお願いいたします。

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