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のチャンネルを座標ポストに注意を歓迎します