MySQLのマスターマスタデータ同期化の解析

MySQLのマスターマスター同期と同じで、マスター・スレーブの同期が、双方は、マスタ・スレーブの役割です。

環境

オペレーティングシステムのバージョン:CentOS7 64魏 
MySQLバージョン:mysql5.6.33の 
ノード1IP:192.168.1.205ホスト名:EDU-mysqlの-01 
ノード2IP:192.168.1.206ホスト名:EDU-mysqlの-02

MySQLのマスタースレーブのレプリケーション公式文書ます。http://dev.mysql.com/doc/refman/5.6/en/replication.html

注: 
1>マスタ・サーバ・オペレーティング・システムのバージョンとビットの整合性から 
2>一致するデータベースのマスターとスレーブのバージョン 
データベース内の3>マスタとスレーブのデータが一致するため

コンフィギュレーション

MySQLの設定をインストールする前に

1、セキュリティ設定

1>ファイアウォール 
(デフォルトは3306である)MySQLの通信ポートを追加しました

3306 --dport TCP -pシェル> vimの、/ etc / sysconfig / iptables内-INPUT -m状態--state NEW -m tcpのはACCEPT -j 
シェル>サービスのiptablesを再起動します

またはファイアウォールをオフにします

シェル>サービスのiptablesを停止します

2> SELinuxをオフにします

シェル> viのは/ etc / selinuxを/ configの
SELINUX =無効

disabledに変更された値のSELINUX

2.ノード1の構成(192.168.1.205)

2.1データ同期設定を追加

シェル> VIMな/etc/my.cnf

[mysqldを]で、次の構成の中のアイテム:

#サーバーのIDは、通常、独自のIPを設定し、一意である必要があります

SERVER_ID = 205#レプリカフィルタ:なしバックアップ・データベース(MySQLデータベースは、一般的に同期していません)

ビンログが-無視デシベル= mysqlの#バイナリログをオンにし、名前を簡単に、最高の意味を取ることができます(たとえば、プロジェクト名など)

ログ・ビンバイナリログキャッシュストレージの各セッションに割り当てられた= EDU-mysqlのビン#メモリを、トランザクション処理に

マスター・コピー・フォーマット(混合、文、行、デフォルトフォーマット文)からbinlog_cache_size = 1M位

binlog_format =混合#バイナリ日数が自動的に/期限切れのに削除されてログインします。デフォルト値は自動的に削除されませんを意味し、0です。

割り込みコピーを避けるために、すべてのエラーまたはマスターコピーから発生したエラーの特定のタイプ、スレーブ端末をスキップ## = 7 expire_logs_days。##:1062エラーは、いくつかのキーが繰り返されていることを意味し、1032一貫性のないエラーため、データベースからの主なデータ

slave_skip_errors = 1062#ときに、ログからのリレーサーバとして

relay_log = EDU-mysqlのリレービン#のlog_slave_updatesスレーブレプリケーション・イベントは、独自のバイナリログに書き込まれます表し

重複マスタ - スレーブ同期の問題を回避するlog_slave_updates = 1つの#インクリメント主キーのルールIDは

auto_increment_increment = 2#増分因子(それぞれプラス2)

auto_increment_offset(最初から)オフセット= 1#インクリメント、単数

2.2マスター構成

#サービスを再起動するには

シェル>サービスmysqldを再起動  

#mysqlのにログインします

シェル> MySQLの-uroot -p

#データベースの同期ユーザを作成し、適切な権限を付与

MySQLの>助成金のレプリケーションスレーブ、複製クライアント*上*「repl'@'192.168.1.206は」「root123456」によって識別します。

#リフレッシュの許可テーブル情報

MySQLの>フラッシュ権限;

マシンを使用する必要性から#のバイナリログファイルの位置(オフセット)とファイルを確認するには、値(ログファイル)を、

MySQLは>マスター状態を表示します。
+ ---------------------- + ---------- + -------------- + ------------------ + ------------------- + | ファイル| 位置| Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | 
+ ---------------------- + ---------- + -------------- + ------------------ + ------------------- + | EDU-mysqlの-bin.000001 | 120 | | mysqlの| | 
+ ---------------------- + ---------- + -------------- + ------------------ + ------------------- + 
セットにおける1行(0.00秒)

2.3スレーブ設定

#Master_userとmaster_password:206に付与レプリケーションスレーブの実装...とユーザーのパスワード#のMASTER_LOG_FILEとMASTER_LOG_POSを作成:206でshowマスターステータスを実行し、ファイルと位置フィールドの値に対応したコマンドの実行結果

MySQLの> = '192.168.1.206'、master_user = 'REPL'、master_password = 'root123456'、MASTER_PORT = 3306、MASTER_LOG_FILE = 'EDU-のMySQL-bin.000001'をMASTER_HOSTする変更マスタ、MASTER_LOG_POS = 439、MASTER_CONNECT_RETRY = 30;#查看作为从节点的状态信息
のMySQL>スレーブ状態\ Gを示し、*************************** 1行***** ********************** Slave_IO_State:MASTER_HOST:192.168.1.206 Master_User:REPL MASTER_PORT:3306 Connect_Retry:30 MASTER_LOG_FILE:EDU-のMySQL-bin.000001のRead_Master_Log_Pos:439 RELAY_LOG_FILE:EDU-mysqlのリレー-bin.000001 RELAY_LOG_POS:4のRelay_Master_Log_File:EDU-mysqlの-bin.000001 Slave_IO_Running:いいえSlave_SQL_Running:いいえ#省略其它配置...

この時点ではノードから起動しないのでSlave_IO_Stateがnullで、Slave_IO_RunningとSlave_SQL_Runningも実行されていないん表現スレッドません。

2.4スタートスレーブ

注意:同期アカウントを作成し、ノード2上で起動するには、それ以外の場合はエラーRomのマスターを報告します

#スタート(すべてのイベントデータベースのデータの変更)マスターノードが作業を開始するノードからイベントを送信し受信

MySQLの>スレーブを開始;#此时再查看スレーブ节点的状态
MySQLの>スレーブステータスの\ Gを示し; *************************** 1 。行*************************** Slave_IO_State:192.168.1.206 Master_User:イベントMASTER_HOSTを送信するためにマスターを待っているREPL MASTER_PORT:3306 Connect_Retry: 30 MASTER_LOG_FILE:EDU-mysqlの-bin.000001 Read_Master_Log_Pos:439 RELAY_LOG_FILE:EDU-mysqlのリレー-bin.000002 RELAY_LOG_POS:287のRelay_Master_Log_File:EDU-mysqlの-bin.000001 Slave_IO_Running:はいSlave_SQL_Running:はいReplicate_Do_DB:#...省略其它配置

3.ノード2の構成(192.168.1.206)

3.1データ同期設定を追加

シェル>のVimな/etc/my.cnf 
・1。
次の設定項目[mysqldを]で:
= 206 SERVER_ID 
バイナリログ-mysqllog無視-DB = = EDU-ビンビンのMySQL 
binlog_cache_size = 1Mの
binlog_format =混在
。expire_logs_days 7 = 
slave_skip_errors = 1062 
relay_log = EDU-リレー・ビン・MySQLは
ID =増分をlog_slave_updates。1最初から#2、二重の数
auto_increment_increment = 2 
auto_increment_offset = 2

3.2マスター構成

#は、サービス再起動するには
シェル>を再起動してmysqldサービス   
のMySQLへの#ログイン
> MySQLの-urootシェル-のp 
#は、データベースの同期ユーザを作成し、適切な権限を付与します(REPLユーザのみが192.168.1.205からログオンできるようにする)
のMySQL>グラントスレーブ複製、 「root123456」で識別*クライアントレプリケーション「repl'@'192.168.1.205」;.へ* ON 
#リフレッシュ認可情報テーブル
のMySQL>フラッシュ権限; 
(ログファイル)を#のバイナリログファイルの位置(オフセット)とファイルの値を表示しますマシンから> MySQLを使用して、マスター・ステータスを表示する必要があります。
+ ---------------------- + ---------- + --- ----------- + ------------------ + ------------------- + |ファイル|ポジション| Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | 
SET(0.00秒)に1行
+ ---------------------- + ---------- + -------------- + ------------------ + ------------------- +

次に、スレーブ・サービスのノード1(205)を開始することができます

3.3スレーブ設定

#MASTER_LOG_FILEとMASTER_LOG_POS:ノード205上に表示するマスタステータスを実行するステップと、ファイルと対応する位置値 
のMySQL> = 'MASTER_HOSTする変更マスタ 192.168.1.205'、master_user = 'REPL'、master_password = 'root123456を'、MASTER_PORT = 3306、MASTER_LOG_FILE = 'EDU-のMySQL-bin.000001'、MASTER_LOG_POS = 120、30 = MASTER_CONNECT_RETRY; 
OKを照会し、0行が影響を受け、2は警告を表し(0.02秒)
MySQLの>スレーブ状態\ Gを示し、*************************** 1行************ *************** Slave_IO_State:MASTER_HOST:192.168.1.205 Master_User:REPL MASTER_PORT:3306 Connect_Retry:30 MASTER_LOG_FILE:EDU-のMySQL-bin.000001 Read_Master_Log_Pos:120 RELAY_LOG_FILE:EDU-MySQLのリレー-bin.000001 RELAY_LOG_POS:4のRelay_Master_Log_File:EDU-mysqlの-bin.000001 Slave_IO_Running:いいえSlave_SQL_Running:いいえReplicate_Do_DB:#...省略其它配置

3.4、スレーブを開始

シェル>は、スレーブを起動します。

影響を受けたクエリOK、0行(0.01秒)

MySQLの>スレーブ状態\ Gを示し、*************************** 1行************ *************** Slave_IO_State:192.168.1.205 Master_User:イベントMASTER_HOSTを送信するためにマスターを待っているREPL MASTER_PORT:3306 Connect_Retry:30 MASTER_LOG_FILE:EDU-mysqlの-bin.000001 Read_Master_Log_Pos:439 RELAY_LOG_FILE :EDU-mysqlのリレー-bin.000002 RELAY_LOG_POS:287のRelay_Master_Log_File:EDU-mysqlの-bin.000001 Slave_IO_Running:はいSlave_SQL_Running:はいReplicate_Do_DB:...省略其它配置

4.確認してください

#205データベース・ログイン作成する
シェルを> -p MySQLの-uルート
のMySQL> SETのutf8のCOLLATE utf8_general_ciない存在する場合は、データベースmydbというのデフォルトの文字を作成し、
MySQLの>表にユーザーを作成します(上記のid int型、ユーザ名VARCHARを(30)、パスワードVARCHAR(30)) ; 
MySQLの>(1 'Yangxin'、 '123456')ユーザーの値への挿入;、#以下は、206ノード動作#1 206のクエリにすべてのライブラリをログは、データベースMYDB#2が含まれている、ライブラリーをMYDBに切り替え、かユーザ・テーブルを含む、データ#3を有し、データがmydb.userビュー205のテーブル206に挿入され、過去に同期している
MySQLの>インサートユーザー値に(2 、「yangxin2」、「123456」)

 

詳細なプロセスを以下に示します。

MySQLのマスターマスタデータ同期化の解析 

 

 

座標の仕上げポストによって公開この記事では、より多くの知識データベースを学習し、MySQLのチャンネルを座標ポストに注意を歓迎します

おすすめ

転載: www.cnblogs.com/HKROnline-SyncNavigator/p/10972168.html