ホームページ  >  記事  >  ウェブフロントエンド  >  Docker の Mysql マスター/スレーブ レプリケーションの詳細な説明

Docker の Mysql マスター/スレーブ レプリケーションの詳細な説明

小云云
小云云オリジナル
2018-02-07 14:39:321337ブラウズ

この記事では主に、Docker に基づいた Mysql のマスター/スレーブ レプリケーションについて説明します。お役に立てれば幸いです。

環境紹介

マスターサーバー: JD Cloud CentOS

スレーブサーバー: Vultr Cloud CentOS

テストの便宜上、Docker を使用して Mysql を実行します。Docker の起動コマンドは次のとおりです。上記のすべては mysql を配置します。構成ディレクトリとデータ ディレクトリはホスト マシンにマッピングされます。

マスターを設定する 便宜上、マスターデータベースを操作するために特別なディレクトリが作成されます。構造は次のとおりです

 docker run --name mysql-server-01 -p 3306:3306 -v "$PWD"/conf.d:/etc/mysql/conf.d -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw  -d mysql:latest

マスターを設定するためにmy.cnfを作成します

えー

これでコンテナを起動できるようになります。

起動後、mysqlを操作するコンテナに入ります

mysql
└── server01
    ├── conf.d
    ├── data
    └── start.sh

スレーブサーバーを設定します

slave my.cnf設定ファイルは以下の通りです(簡単にするために、ここでは多くのパラメータが省略されています。本番環境):

[mysqld]log-bin=mysql-binserver-id=1innodb_flush_log_at_trx_commit=1sync_binlog=1

次に、コンテナを起動して、mysql クライアントに入ります。 "

# 进入容器
docker exec -it 容器ID bash

# 进入msyql客户端
mysql -u root -p

# 新建salve用户并配置权限,格式如下
mysql> CREATE USER 'repl'@'%.example.com' IDENTIFIED BY 'password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.example.com';

# 查看master状态,这里file和position后面配置salve会用到mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+| mysql-bin.000001 |     1092 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)
実行ステータスを確認します:

[mysqld]server-id=2
上記の Slave_IO_Running と Slave_SQL_Running は両方とも YES であり、マスターとスレーブが構成されていることを示します。 概要mysqlには3つの一般的なアーキテクチャがあります

シングルインスタンスアーキテクチャマスタースレーブレプリケーション

MHA高可用性アーキテクチャそのうち、マスタースレーブレプリケーションは以下に基づいていますの上記のバイナリ ログ レプリケーション方法と、グローバル トランザクション識別子 (GTID) に基づく別の方法です。 関連する推奨事項:

MySQLのマスター/スレーブレプリケーションプロセスの詳細な説明_Mysqlインスタンスの詳細な説明

  • MySQL5.7.18のマスター/スレーブレプリケーションのマスター/スレーブインスタンスのセットアップの詳細な説明

  • MySQL マスターでの Mycat の読み取りと書き込みの分離 コピーに基づいて実装された例

以上がDocker の Mysql マスター/スレーブ レプリケーションの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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