MySQL のレプリケーション機能は、1 つのデータベースから他の複数のデータベースにデータを同期できます。 1 つ目は一般にマスター データベース (マスター) と呼ばれ、2 つ目はスレーブ データベース (スレーブ) と呼ばれます。 MySQL レプリケーション プロセスは非同期方式を使用しますが、遅延は非常に小さく、数秒で同期されます。
1. メイン ライブラリで発生したデータ変更はバイナリ ログ Binlog に記録されます
2. スレーブ ライブラリの IO スレッドはコピーしますメイン ライブラリの Binlog 独自のリレー ログへ リレー ログ
3. スレーブ ライブラリの SQL スレッドはリレー ログを読み取って再生することでデータ レプリケーションを実現します
MySQL レプリケーション モードには、ステートメント レベル、行レベル、混合レベルの 3 つのタイプがあります。レプリケーションレベルが異なると、マスターサーバーは異なる形式のバイナリログファイルを生成します。
オペレーティング システム: centos7
データベース: mysql8
ホスト (マスター): 192.168.0.101
スレーブ (スレーブ): 192.168.0.102
ホスト設定 my.cnf
[mysqld] # 服务器标识,每个服务器不能一样 server_id=101 # 开启日志文件 log_bin=binlog # 普通用户只能读 OFF是关闭状态 read_only=off # 超级用户只能读 OFF是关闭状态 super_read_only=off
スレーブ設定
[mysqld] # 服务器标识 server_id=102 # 启用binlog日志,并指定文件名前缀 log_bin=binlog # 普通用户只能读 on是开启状态 read_only=on # 超级用户只能读 on是开启状态 super_read_only=on
サービスを再起動
systemctl restart mysqld
データベースにログインし、アカウントを作成します
create user repl identified with mysql_native_password by 'repl123'; grant replication slave on *.* to repl; flush privileges;
メインデータベースのマスターステータスを確認し、ログを取得しますファイル名とオフセット情報
ホストのバイナリログ操作をコピー(データの一部は、メイン データベース マスター ステータス)
ホストの同期アカウント:source_user
パスワード:source_password
ポート:source_port
ログ ファイル:source_log_file
オフセット:source_log_pos
change replication source to source_host='192.168.0.101', source_user='repl', source_password='repl123', source_port=3306,source_log_file='binlog.000001', source_log_pos=154;
スレーブの起動synchronization
start replica;
ホスト上で、スレーブからの接続があるかどうかを確認します
show processlist;
スレーブの同期レプリケーションのステータスを確認します
show slave status\G
ホスト上で、テーブルにデータを挿入し、スレーブマシンの対応するテーブルのデータを確認します。テスト結果は非常に良好です(省略)
以上がMySQL 同期データ レプリケーションを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。