MySQLのマスタースレーブプレゼンテーション
(二つのマシンデータ同期)
メイン: - >のbinlog
From: - > relaylog
I / Oスレッドがバイナリログを渡すからとにメインログ・ダンプのスレッドがあり、
メインスレッドのI / O同期とrelaylogバイナリログを生成するために使用される2つのスレッドが存在するから、SQLステートメントrelaylog床の内部のための別のSQLスレッド(実行)
メインアプリケーションのシナリオから:
(1)データのバックアップのために、(一次:からデータを読み書き用:リアルタイム同期、マスタがダウンしている場合、サービスがあってもよい場合であっても)
(2)バックアップを行うことです。(クライアントがこのマシンからデータを読み出す(しかし主の圧力を下げる、)から書くことはできません)
準備
1.両方のマシンは、MySQL、MySQLサービスを装備し、開いています
配置主
所有者:192.1683.136.133から:192.168.136.134
1のmy.cnfを変更し、サーバID = 133を増加させ、log_bin = canshenglinux1
2.設定ファイルを変更した後、開始またはmysqldのサービスを再起動します
再起動後、我々は中/データ設定ファイルにファイルの先頭ためlog_bin = canshenglinux1を定義することとなりました/ mysqlのうねりを見つけることができます
これらの文書は重要であり、またはマスター・スレーブを達成することはできません
3。
MySQLデータベースのバックアップとは、(ライブラリがからのショットを呼び出すために使用されている)テストデータとして、canshengライブラリへのリストア
mysqldumpを-uroot -p123456 mysqlの> /tmp/mysql.sql
mysqlの-uroot -p123456 -e「データベースcanshengを作成します」
mysqlの-uroot -p123456 cansheng </tmp/mysql.sql
4.同期データとしてユーザーを作成します。
(1)第一のMySQLに
(2)データを同期するユーザを再作成
*上の助成金のレプリケーションスレーブ*「123456」で識別slave_ip @「REPL」へ。
テーブルで5.ロック:
flush tables with read lock;
(为了同步前数据一致。)
show master status (查看一下position和file)
(退出mysql)
此时查看一下/data/mysql又是什么库
(一般同步不要同步mysql库,因为里面有很多用户名和密码)
6.备份一下所需要同步的库:
mysqldump -uroot -p123456 zrlog > /tmp/zrlog.sql
配置从
1.查看my.cnf,配置server-id=134,要求和主不一样
2.修改完配置文件后,启动或者重启mysqld服务
/etc/init.d/mysqld restart
3.把主上需要同步的库复制过来:
scp 192.168.136.133:/tmp/*.sql /tmp/
临时创建alias,方便使用命令:
alias 'mysql=/usr/local/mysql/bin/mysql'
alias 'mysqldump=/usr/local/mysql/bin/mysqldump'
4.进入mysql
创建相对应的库:
create database cansheng;
create database zrlog;
create database mysql2;
5.数据恢复:
mysql -uroot cansheng < /tmp/mysql.sql
6.进入mysql
(1)stop slave;
(2)change master to master_host='192.168.136.133', master_user='repl', master_password='123456', master_log_fil_log_file='canshenglinux1.000002', master_log_pos=646207;
(3)start slave;
(4)マスタからの設定か否かを判断します
G \スレーブステータスを表示
これが成功した2つだけイエスの成功を見えるように構成され失敗しました。
失敗した要因:
(1)ファイアウォールsystemctl停止firewalld
(2)SELinuxを - >閉じるsentenforce 0
(3)ユーザ名が正しいですか
{私の要因は主の構成は、一度ゼロから指定されたユーザ名とパスワードエラー開始しているとき}
メイン7.戻り、ロックMySQLのテーブル(表)を放出するために進みます。
テーブルのロックを解除します。
これは、マスター・スレーブ構成を完了します。
マスター・スレーブ同期テスト
(これらのパラメータはデフォルトで設定されていないだけマスターにするかの設定のいずれかから、すべてのライブラリを同期させる手動設定、デフォルトはありません)
最後の二つの内を利用する設定から、ライブラリやテーブルを無視して、回避することができ、カスケードクエリはデータの損失を避けるためにするとき、それが見落とさも無視すべきではありません!!
本試験から同期するかどうか、成功しています!
データベースにテスト対象のMySQLへの1.両方のマシン:cansheng2
メインテーブルの上にこの時点で空のコメント、空からのデータは、それによって同期するかどうかを確認するために表をコメント。
テーブルのコメントを切り捨てます。
テーブルのテストをドロップ:
我々は、このマシンからMySQLの操作に追従できない場合、または当社がメインから切断されます。
(この時点で私たちの位置が変更されたため)
この時点で私たちの主から切り離された場合は、再実行する必要があります
(1)スレーブを停止します。
(2)= '192.168.136.133'、master_user = 'REPLを' MASTER_HOSTする変更マスタを、master_password = '123456'、master_log_fil_log_file = 'canshenglinux1.000002'、MASTER_LOG_POS = 646207。
(3)スレーブを開始します。
(4)マスタからの設定か否かを判断します
G \スレーブステータスを表示
これが成功した2つだけイエスの成功を見えるように構成され失敗しました。