Mysqlマスタースレーブレプリケーション
-
- 1.複製の基本原則
- 2.複製の基本原則
- 3つ目は、レプリケーションの最大の問題です。
- 1つのマスターと1つのスレーブの4つの一般的な構成
-
-
- (1)mysqlのバージョンは一貫しており、バックグラウンドはサービスとして実行されます
- (2)マスターとスレーブはすべて[mysqld]ノードの下にすべて小文字で構成されています
- (3)ホストはmy.ini構成ファイルを変更します(Windows)
- (4)マシンからmy.cnf構成ファイルを変更します(Linux)
- (5)設定ファイルが変更されているため、ホストとスレーブの両方でバックグラウンドmysqlサービスを開始してください
- (6)ホストとスレーブの両方のファイアウォールをオフにします
- (7)Windowsホストでアカウントを作成し、スレーブを承認します
- (8)Linuxスレーブにコピーするようにホストを構成します
- (9)マスターは、新しいライブラリ、新しいテーブル、挿入レコード、およびマシンからのコピーを作成します
- (10)サービスからの関数のコピーを停止する方法
-
Mysqlの全体的なマスタースレーブレプリケーションは、redisのマスタースレーブレプリケーションに似ています。
1.複製の基本原則
slave 会从 master 读取 binlog 来进行数据同步
3つのステップ:
- マスターは、変更をバイナリログに記録します。これらの記録プロセスは、バイナリログ時間、バイナリログイベントと呼ばれます。
- マスターへのスレーブバイナリログへのコピーebentsリレーログ(リレーログ)
- スレーブはリレーログの時間をやり直し、変更を自身のデータベースに適用します。MySQLのレプリケーションはある非同期とシリアライズの
回路図:
2.複製の基本原則
- 各スレーブにはマスターが1つだけあります
- 各スレーブは一意のサーバーIDのみを持つことができます
- 各マスターは複数の軟膏を持つことができます
3つ目は、レプリケーションの最大の問題です。
最大の質問をコピーすることです:遅延があります
1つのマスターと1つのスレーブの4つの一般的な構成
ホストと仮想マシン上にある場合は、それらが同じネットワークセグメント上にあることを確認してください
(1)mysqlのバージョンは一貫しており、バックグラウンドはサービスとして実行されます
(2)マスターとスレーブはすべて[mysqld]ノードの下にすべて小文字で構成されています
(3)ホストはmy.ini構成ファイルを変更します(Windows)
2つの必須項目のみを構成します
①[必須]メインサーバーの一意のID
server-id =1
②[必須]バイナリログを有効にする
log-bin=自己本地的路径/mysqlbin
log-bin=D:\Mysql5\mysql5\data\mysqlbin
③[オプション]開始エラーログ
log-err=自己本地的路径/mysqlerr
④(オプション)ルートディレクトリ
basedir="自己本地路径"
basedir=D:\Mysql5\mysql5
⑤(オプション)一時ディレクトリ
tmpdir="自己的本地路劲"
⑥[オプション]データカタログ
datadir="自己本地路径/Data/"
datadir=D:\Mysql5\mysql5\data
ʻread-only = 0(ホストの読み取りと書き込みのサポート)
read-only=0
⑧[オプション]データベースをコピーしないように設定します
binlog-lgnore-db=mysql
⑨[オプション]コピーするデータを設定します
binlog-do-db=需要复制的主数据库名字
(4)マシンからmy.cnf構成ファイルを変更します(Linux)
(1)【必須】スレーブサーバーの一意のID
server-id =2
(2)[オプション]バイナリファイルを有効にする
log-bin=/var/lib/mysql/mysql-bin
(5)設定ファイルが変更されているため、ホストとスレーブの両方でバックグラウンドmysqlサービスを開始してください
(6)ホストとスレーブの両方のファイアウォールをオフにします
ホストは手動でファイアウォールをオフにします
マシンのコマンドラインからシャットダウンします。service iptables stop
(7)Windowsホストでアカウントを作成し、スレーブを承認します
①承認
GRANT REPLICATION SLAVE ON *.* TO '用户名'@'从机器数据库IP’ IDENTIFIED BY '密码';
GRANT REPLICATION SLAVE ON *.* TO 'zhangsan'@'192.168.43.129' IDENTIFIED BY '123456';
②特権をフラッシュします。
③マスターの状態を問い合わせる
show master status;
ファイルと位置の値を記録します
④この手順を実行した後、メインサーバーの状態値の変更を防ぐためにメインサーバーのMySQLは実行されません
(8)Linuxスレーブにコピーするようにホストを構成します
①スレーブで設定する
CHANGE MASTER TO MASTER_HOST='主机IP',MASTER_USER='zhangsan',MASTER_PASSWORD='123456',MASTER_LOG_FILE='File名字',MASTER_LOG_POS=759;
CHANGE MASTER TO MASTER_HOST='192.168.43.187',MASTER_USER='zhangsan',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysqlbin.000002',MASTER_LOG_POS=1059;
②サーバーからコピー機能を開始します
start slave;
③スレーブ状態を表示\ G
次の2つのパラメーターは両方ともYESであり、マスタースレーブ構成が成功したことを示します。
Slave_IO_Running:Yes
Slave_SQL_Running:Yes
(9)マスターは、新しいライブラリ、新しいテーブル、挿入レコード、およびマシンからのコピーを作成します
(10)サービスからの関数のコピーを停止する方法
stop slave;