環境:
マスター:CentOSの5.2 MySQLの5.1.35のソースIP:サーバーから192.168.1.22:CentOSの5.2 MySQLの5.1.35のソースIP:192.168.1.33
構成:
まず、プライマリサーバ1.1は、許可のレプリケーションスレーブに複製ユーザーを作成します。MySQLの> * *上のグラントレプリケーションスレーブ 'REPL' ;. 1.2で識別される'repl'@'192.168.1.22'に、 my.cnfファイルは、viのな/etc/my.cnfファイルを編集
追加
サーバー-ID = 1を
、ログ・ビンをオンバイナリログファイルは、
ログ・ビン= mysqlのビン注:= 1 1.3サーバーIDを削除するには、デフォルトの必要性、mysqlデータベースのmysqld_safe --user = mysqlの&1.4、読み取りロックと読み取りロックのmysql>フラッシュテーブルを設定開始; 1.5、 与えることをbinlogのログファイル名とオフセットMySQLの>ショーのマスターステータス; + ------------------ + ---------- + ------ + ------------------ + --------
|ファイル|ポジション| Binlog_Do_DB | Binlog_Ignore_DB |
+ ------------ + ------ + -------------- + ----------------- ---------- - +
| MySQLの-bin.0000010 | 106 | | |
+ ------------------ + ---------- + -------------- + ---- -------------- + 1.6、> test.sql内1.7を同期するためのmysqldumpテストデータベースのバックアップ、mysqlのロックを解除>は、テーブルのロックを解除し、第二には、サーバー2.1から、など/ my.cnfのファイルVIを編集/my.cnfが
追加
サーバID = 2注:必要がデータベースから出発し、サーバID = 1 2.2を除去するためにデフォルトにmysqld_safeを--user = MySQLの&2.3、データベースのMySQLのセットに対応>マスタに変更
- > MASTER_HOST = '192.168.1.22'
- > MASTER_USER = 'REPL'
- > master_password = 'REPL'
- > MASTER_LOG_FILE = 'のMySQL-bin.0000010'
- > MASTER_LOG_POS = 106; 2.4、スレーブ・サーバ・スレッドのMySQLから出発>スレーブを開始、実行MySQLの> PROCESSLIST \ Gを示しています。PROCESSLISTコマンドで表示に、以下のプロセスを示して
*************************** 2行*******を********************
イド:2
ユーザー: システム・ユーザー・
ホスト:
DB:NULL
コマンド:接続
時間:2579
状態:持って読むすべてのリレーログ、待機用のスレーブI / O ITを更新するために、スレッドの
情報:NULLは、受け入れおよびログ2.5を実行し、スレーブスレッド状態のmysqlを見始めたスレーブがマスタに接続されていた表し>ショースレーブ状態; *************************** 1行 *************** ************
Slave_IO_State:イベントを送信するには、マスターを待っている
192.168.1.22 MASTER_USER:REPLのMASTER_HOST
MASTER_PORT:3306
Connect_Retry:60
MASTER_LOG_FILE:MySQLの-bin.0000010
Read_Master_Log_Pos:106
RELAY_LOG_FILE:CentOSの-relay-をbin.000002
RELAY_LOG_POS:529
Relay_Master_Log_File:MySQLの-bin.0000010
Slave_IO_Running:はい
Slave_SQL_Running:はい
Replicate_Do_DB:Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno:0
LAST_ERROR:
Skip_Counter:0
Exec_Master_Log_Pos:106
Relay_Log_Space:830
Until_Condition:なし
Until_Log_File:
Until_Log_Pos:0
Master_SSL_Allowed:いいえ
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master:0
Master_SSL_Verify_Server_Cert:いいえ
Last_IO_Errno:0
Last_IO_Error:
Last_SQL_Errno:0
Last_SQL_Error:
セット内の1行(0.00秒)
設定が正しいことを確認します
サーバーからのshowスレーブステータスの\ Gを実行することと、
イベントを送信するためにマスターを待っている
Slave_IO_Runningは:はい
Slave_SQL_Running:はい、同時に2つの以上の行がはい成功を説明するために配置されたとして、
テスト
1、>マスターサーバーでの使用テストをユーザテーブルMySQLのテスト・データベースを作成するために、
MySQLは>表のユーザ(ID int型)を作成し、図2に示すように、ユーザテーブルMySQLを表示>サーバから使用テストを、
MySQLは>「ユーザ」のようなテーブルを示す図であります
+ + ----------------------
| Tables_in_test(ユーザー)|
+ -------------------- - +
|ユーザー|
+ ---------------------- +
SET(0.00秒)で1行マスター・スレーブデータ同期成功。
問題は?
1.ので、スレーブI / Oスレッドが停止すると 、マスターとスレーブが同じMySQLサーバIDを持つデータベースからスレーブ状態を見ながら、これらのIDは、複製のために異なっていなければならない動作する(または--replicate-同じサーバ-idオプションスレーブ上で使用する必要がありますが、これはない 、常に意味を成さない、それを使用する前に取扱説明書をご確認ください) 同じmy.cnfファイル内のサーバIDサーバ側からの指示。解決策:サーバーIDでのmy.cnfを変更し、データベースサービスを再起動します。my.cnfのファイルのデフォルトのmy.cnf#のビンログ-DO-DB =バックアップニーズプライマリサーバのサーバID = 1つのそれ以外の場合は指定されたデータベースの名前を持っている、あなたは複数行書くことができます
#のbinlog-無視-DBを=データベース名のバックアップをする必要はありません。複数行書く
#の複製-DO-DB =データベース名テストバックアップする必要があるmy.cnfのサーバーから
#複製-無視-DB = mysqlのデータベースが見落とさ
プライマリサーバが再度、壊れていた場合、サーバから#マスター接続リトライ= 60また、設定ファイルのmy.cnf = MySQLのビンログビン変更を直接提供することができる時間差(S)に接続され
、マスター・ホスト・ユーザー192.168.1.22master = = = replmaster- REPLパスワード
マスターポート= 3306
)| + ------------------------------------------------- - +
| 0 |
+ ---------------------------------------------- + ----
行SET(0.01秒)同期が完了すると、マスターサーバーMySQLで行わロック解除>表のロックを解除1、プライマリサーバは、サーバからの失敗マスタースイッチ、サーバからプライマリ・サーバは、以下のステップを使用することができる場合:図1に示すように、すべての更新は、すべての状態は、すべてのリレーログを読み取ったかどうかを確認するために、サーバー停止スレーブIO_THREAD、検査ショーPROCESSLISTから実行する、データベースからログイン中継行われてきた、更新が>停止スレーブIO_THREADを.mysql完了したことを示すことを確実にします;
OK、0が影響を受けた(0.00秒)クエリ
のMySQL>ショーPROCESSLIST \ Gを、行2. *** *************************** ************************
イド:2
ユーザー:Userシステム
ホスト:
DB:NULL
コマンド:接続
時間:4757
状態:すべてのリレーを読んだログ。スレーブI / Oスレッドを待って 、それを更新します
INFO:スレーブ停止スレーブで実行NULL2、マスタコマンドをリセットし、プライマリ・データベースのMySQL> STOPスレーブにリセット;
OK、影響を受ける0(0.00秒)クエリ
のMySQL>マスターRESETと、
OKを照会し、影響を受ける0(0.00秒)
3、サーバーからの起動に応じてそれ以外の場合は、次の時間が再起動されます、新しいマスターデータベースディレクトリのmaster.infoとrelay-log.infoファイルを削除
著者:ムーUI4062818の
リンクします。https://www.imooc.com/article/41306
出典:ムーのクラスのネットワーク