Docker で MySQL マスターとスレーブをデプロイする方法

Docker で MySQL マスターとスレーブをデプロイする方法

画像をダウンロード

MySQLイメージの選択

docker 検索 mysql 

ここに画像の説明を挿入

MySQL 5.7 イメージをダウンロード

docker プル mysql:5.7

mysql イメージを表示

Docker イメージ

ここに画像の説明を挿入

MySQLマスタースレーブを構築する

マスター

docker run --name mysql-master -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

奴隷

docker run --name mysql-slave -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

マスターによって外部にマップされるポート番号は3307で、スレーブによって外部にマップされるポート番号は3308です。

コンテナを表示

ドッカーps 

ここに画像の説明を挿入

接続テスト

ここに画像の説明を挿入
ここに画像の説明を挿入

マスターの設定

コンテナに入るには次の 2 つの方法があります。

docker exec -it 1b166e12ad6b /bin/bash #1b166e12ad6bはコンテナIDです
docker exec -it mysql-master /bin/bash #mysql-masterはコンテナ名です

/etc/mysql/my.cnf設定ファイルを変更する

テキストエディタで /etc/mysql/my.cnf を開きます。 

ここに画像の説明を挿入

vimコマンドが見つかりませんでした。docker内にvimツールをインストールしてください。vimをインストールするには、次の2つのコマンドを入力してください。

apt-getアップデート
apt-get で vim をインストール

インストールが完了したら、my.cnf設定ファイルを変更します。

テキストエディタで /etc/mysql/my.cnf を開きます。

[mysqld]
## server-id=100 は同じ LAN 内で一意である必要があります。  
## バイナリログ機能を有効にすると、任意のログ(キー)を取得できます
ログビン=マスタービン
binlog-format=ROW // バイナリログ形式。行、ステートメント、混合の 3 種類があります。

設定後、MySQLを再起動します。

サービスmysqlの再起動

再起動するとDockerコンテナが停止します。コンテナを再起動するには次のコマンドを使用します。

ドッカーps -a 

ここに画像の説明を挿入

docker で MySQL マスターを起動します

データベース同期アカウントを作成する

mysql-masterコンテナに入る

docker exec -it 1b166e12ad6b /bin/bash

MySQLにログインし、スレーブホストの同期アカウントを承認します。

mysql -uroot -p123456

'123456' によって識別されるユーザー 'slave'@'%' を作成します。
*.* のレプリケーション スレーブ、レプリケーション クライアントを 'slave'@'%' に付与します。 

ここに画像の説明を挿入

この時点でマスター構成は完了です

奴隷

マスターと同様のコマンドを使用してコンテナに入ります

docker exec -it mysql-slave /bin/bash

my.cnf設定ファイルを変更し、vimコマンドをインストールすることを忘れないでください

テキストエディタで /etc/mysql/my.cnf を開きます。

[mysqld]
## server_id を設定します。一意である必要があることに注意してください。server-id=101  
## スレーブが他のスレーブのマスターとして使用される場合にバイナリログを有効にする log-bin=mysql-slave-bin   
## relay_log 設定 リレーログ relay_log=mysql-relay-bin  
read_only=1 ## 読み取り専用に設定します。この項目が設定されていない場合、スレーブは読み取りと書き込みが可能です。

MySQLを再起動する

サービスmysqlの再起動

コンテナを起動する

docker で MySQL スレーブを起動する

マスタースレーブレプリケーションを有効にする

まず、2つのターミナルを開き、マスターコンテナとスレーブコンテナに入り、MySQLを入力します。

mysql-master 操作

mysql -uroot -p123456
マスターステータスを表示します。 

ここに画像の説明を挿入

mysql-スレーブ操作

注: master_log_file='', master_log_pos= をマスターマシンで表示した結果に変更することを忘れないでください。

mysql -uroot -p123456

マスターを、master_host='10.0.3.2'、master_user='slave'、master_password='123456'、master_port=3307、master_log_file='master-bin.000001'、master_log_pos=617 に変更します。

スレーブを起動します。

スレーブステータスを表示 \G; 

ここに画像の説明を挿入

テスト成功

mysql-master 操作

データベース dockertest を作成します。 

ここに画像の説明を挿入

mysql-スレーブ操作

ここに画像の説明を挿入

マスター上に作成されたデータベースがスレーブ上に表示され、成功が証明されます。

記事参照リンク

詳しい情報については、

これで、Docker で MySQL をマスターとスレーブとしてデプロイする方法についての記事は終了です。Docker で MySQL をデプロイする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker環境でMySQLを実行し、Binlogを有効にしてマスタースレーブ同期を構成する方法
  • DockerとCanalをベースにMySQLのリアルタイム増分データ転送を実現
  • Docker で MySQL マスター スレーブ レプリケーションを実装するためのサンプル コード
  • DockerでMySQLマスタースレーブ環境を構築する方法の詳しい説明
  • Docker はデータ量の問題を解決するために MySQL の binlog ログを開きます

<<:  MySQL COUNT関数の使用と最適化

>>:  Webデザインの経験:ナビゲーションシステムをシンプルにする

推薦する

HTML でよく使われるメタ百科事典 (推奨)

メタタグは、HTML言語のヘッド領域にある補助タグです。HTML文書のヘッダーにあるヘッドタグとタイ...

JavaScript オブジェクト指向の実践の詳細説明: カプセル化とオブジェクトのドラッグ

目次概要1. DOM要素をアニメーション化する方法2. 現在のブラウザでサポートされている変換互換の...

Vue での bimface の使用に関する詳細

目次1. Vue スキャフォールディングをインストールする2. プロジェクトを作成する3.1 プロジ...

JavaScript によるダイナミッククリスマスツリーの詳細な説明

目次1. CSS のみを使用して作成したアニメーションのクリスマスツリー2. CSS のみを使用して...

JSは10進数を16進数に変換するサンプルコードを実装します

序文コードを書くと、時々基数変換の問題に遭遇します。一般的な変換には、2進数、8進数、10進数、16...

HTML テーブル マークアップ チュートリアル (28): セルの境界線の色属性 BORDERCOLOR

テーブルを美しくするために、セルごとに異なる境界線の色を設定できます。基本的な構文<TD 境界...

燃える炎効果の英語フォント16種類をシェアする

私たちは視覚の世界に住んでおり、多くの視覚効果に囲まれています。コンピューターの前にいても、屋外にい...

Zabbix で監視項目と集約されたグラフを設定するためのサンプルコード

1. ローカルマシンを監視するためにZabbixエージェントをインストールするエージェントソフトウェ...

CentOS に Memcached と PHP Memcached 拡張機能をインストールする

高性能分散メモリオブジェクトキャッシュシステムMemcachedについては、別の記事「Windows...

プライベートイメージウェアハウスを構築するためのDockerレジストリの実装方法

マイクロサービスのイメージは、保存用に Docker リポジトリにアップロードされます。一般的に使用...

Webデザインの経験: Webコードを効率的に書く

本来、この第 7 章では、デザインにおけるレイヤーと空間テクニックについて深く議論するはずです。しか...

MySQL の従来のソート、カスタム ソート、中国語のピンイン文字によるソート

MySQL の通常のソート、カスタム ソート、中国語のピンイン文字によるソート。実際の SQL を記...

Zabbixを使用してMySQLを監視する方法

Zabbix 導入ドキュメントzabbix導入後zabbixエージェントの操作1. MySQLを監視...

mysqlとnavicat間の接続を確立する際の1251エラーを解決する

コンピュータを再インストールし、最新バージョンのMySQLデータベースをインストールしました。その結...

HTML フォームタグチュートリアル (2):

このチュートリアルでは、ウェブデザインにおけるFORMフォームタグのさまざまな属性の応用を紹介します...