Mysql マスタースレーブ同期構成の実践の詳細な説明

Mysql マスタースレーブ同期構成の実践の詳細な説明

1. はじめに

以前、「MySQL マスター スレーブ同期の原理」という記事を書きました。

この記事を読んだ皆さんは、ぜひ試してみたくなったのではないでしょうか?

今日はMySQLのマスタースレーブ同期を実際に体験してみます!

2. 環境の説明

OS: Ubuntu 16.04

マイスク:5.7.17

以下の実践演習はすべて上記の環境を前提としています。もちろん、他の環境も同様です。

3. 実戦参加

道具

2台のマシン:

マスターIP:192.168.33.22

スレーブIP:192.168.33.33

マスターマシンでの操作

1. 設定ファイルを変更する

/etc/mysql/mysql.conf.d/mysqld.cnfファイルが見つかります。

構成は次のとおりです。

bind-address = 192.168.33.22 #マスターIP
server-id = 1 #マスタースレーブアーキテクチャでは、各マシンノードに一意のserver-idが必要です
log_bin = /var/log/mysql/mysql-bin.log #binlogを開く

2. 設定ファイルを有効にするために MySQL を再起動します。

sudo systemctlでmysqlを再起動します

3. マスターとスレーブの同期用の mysql ユーザーを作成します。

$ mysql -u ルート -p
パスワード:

##slave1 ユーザーを作成し、ユーザーがホスト 192.168.33.33 にのみログインできるように指定します。
mysql> 'slave1'@'192.168.33.33' というユーザーを作成し、'slavepass' で識別します。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)

##slave1 に REPLICATION SLAVE 権限を与えます。
mysql> 'slave1'@'192.168.33.33' に *.* のレプリケーションスレーブ権限を付与します。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)

4. MYSQLに読み取りロックを追加する

マスター データベースのデータとスレーブ データベースのデータの一貫性を保つために、まず MySQL に読み取りロックを追加して読み取り専用にします。

mysql> 読み取りロック付きでテーブルをフラッシュします。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)

5. マスターレプリケーションログの場所を記録する

この情報は後で使用されます。

mysql> マスターステータスを表示します。
+------------------+----------+--------------+------------------+------------------+
| ファイル | 位置 | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+------------------+
| mysql-bin.000001 | 613 | | | |
+------------------+----------+--------------+------------------+------------------+
セット内の 1 行 (0.00 秒)

6. マスターDBの既存データ情報をエクスポートする

$ mysqldump -u root -p --all-databases --master-data > dbdump.sql

7. マスターDBの読み取りロックにアクセスする

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

8. 手順6のdbdump.sqlファイルをスレーブにコピーします。

scp dbdump.sql [email protected]:/home/ubuntu

スレーブマシンでの操作

1. 設定ファイルを変更する

/etc/mysql/mysql.conf.d/mysqld.cnfファイルが見つかります。

次のように構成を変更します。

bind-address = 192.168.33.33 #スレーブIP
server-id = 2 #マスタースレーブ構造内の一意のサーバーID
log_bin = /var/log/mysql/mysql-bin.log #binlogを開く

2. 設定ファイルを有効にするためにMySQLを再起動します。

sudo systemctlでmysqlを再起動します

3. マスター DB からインポートします。 マスターとスレーブのデータの整合性を保つために dbdump.sql ファイルをエクスポートする

$ mysql -u root -p < /home/ubuntu/dbdump.sql

4. 同期のためにスレーブとマスター間の接続を確立する

$ mysql -u ルート -p
パスワード:

mysql> スレーブを停止します。
クエリは正常、影響を受けた行は 0 行、警告は 1 件 (0.00 秒)

mysql> マスターを変更する
 -> MASTER_HOST='192.168.33.22',
 -> MASTER_USER='slave1'、
 -> MASTER_PASSWORD='slavepass'、
 -> MASTER_LOG_FILE='mysql-bin.000001',
 -> MASTER_LOG_POS=613;
クエリは正常、影響を受けた行は 0 行、警告は 2 件 (0.01 秒)

mysql>スレーブを起動します。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)

MASTER_LOG_FILE='mysql-bin.000001'およびMASTER_LOG_POS=613の値は、上記のSHOW MASTER STATUSから取得されます。

この設定後、マスタースレーブ同期を行うことができます〜

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL マスタースレーブ同期の原理と応用
  • Mysql データベースのマスタースレーブ同期構成
  • この記事では、MySQLのマスタースレーブ同期の原理を説明します。
  • MySQL マスタースレーブ同期メカニズムと同期遅延問題追跡プロセス
  • Mysqlマスタースレーブ同期の実装原理
  • MYSQLデータベースでマスタースレーブ同期を設定する方法

<<:  js 属性オブジェクトの hasOwnProperty メソッドの使用

>>:  Weibo の一括フォロー解除機能を実装する JavaScript コード

推薦する

Linux 向けの強化されたスクリーンショットと共有ツール: ScreenCloud

ScreenCloud は、必要だとは思わなかった素晴らしい小さなアプリです。デスクトップ Lin...

JavaScript 配列の include と Reduce の基本的な使用法

目次序文配列.プロトタイプ.includes文法パラメータ戻り値例配列プロトタイプの削減文法パラメー...

シンプルなナビゲーションバー機能を実現するHTML+CSS

さっそく、コードを見てみましょう(初心者:特に言うことはありません) <!DOCTYPE ht...

CSS3で背景画像にカラーマスクを追加する方法

以前、開発中に背景レイヤーにカラーマスクを追加する必要のあるプロジェクトに遭遇しました。ここでは、背...

MySQL 5.7.17 のインストールと設定方法のグラフィック チュートリアル (Windows10)

MySQL 5.7.17 のインストールと設定方法の概要最初のステップは、MySQL公式サイトから...

MySQL 5.7.16 のインストールと設定方法のグラフィック チュートリアル (Ubuntu 16.04)

Ubuntu 16.04 に MySQL 5.7 をインストールするにはどうすればいいですか?メイ...

vuex の補助関数 mapGetters の基本的な使い方の詳細な説明

mapGettersヘルパー関数mapGettersヘルパー関数は、ストア内のゲッターをローカルの計...

Docker に MySQL と MariaDB をインストールする方法

MySQLとMariaDBの関係MariaDB データベース管理システムは MySQL のブランチで...

Linux のファイル システム タイプの表示方法の例

Linux でパーティションのファイル システム タイプを確認する方法。パーティションのファイル シ...

VMware Workstation 14 Pro インストール Ubuntu 16.04 チュートリアル

この記事では、VMware Workstation14 ProにUbuntu 16.04をインストー...

ウェブサイトデザインにおいて非常に重要な概念であるdiv+floatの分析

ウェブサイトの構築では、HTML と CSS に関するさまざまな問題に常に遭遇します。ウェブサイト ...

nginx を使用してブルーグリーン デプロイメントをシミュレートする方法

この記事では、ブルーグリーン デプロイメントと、nginx を使用してブルーグリーン デプロイメント...

JavaScriptプロトタイプと例の詳細な説明

目次コンストラクタインスタンスとプロトタイプの関係プロトタイププロパティ属性またはメンバーの検索原則...

InnoDB がシリアル化分離レベルを実装する方法

シリアル化の実装InnoDB は 2 つの方法でシリアル化を実装します。まず、SELECT 文が明示...

Vueは製品の拡大鏡効果を実現します

この記事の例では、製品の拡大鏡効果を実現するためのVueの具体的なコードを共有しています。具体的な内...