ホームページ >データベース >mysql チュートリアル >MySQL 同期データ レプリケーションを実装する方法

MySQL 同期データ レプリケーションを実装する方法

王林
王林転載
2023-05-26 15:22:261461ブラウズ

MySQL のレプリケーション機能は、1 つのデータベースから他の複数のデータベースにデータを同期できます。 1 つ目は一般にマスター データベース (マスター) と呼ばれ、2 つ目はスレーブ データベース (スレーブ) と呼ばれます。 MySQL レプリケーション プロセスは非同期方式を使用しますが、遅延は非常に小さく、数秒で同期されます。

1. 同期データ レプリケーションの基本原則

1. メイン ライブラリで発生したデータ変更はバイナリ ログ Binlog に記録されます
2. スレーブ ライブラリの IO スレッドはコピーしますメイン ライブラリの Binlog 独自のリレー ログへ リレー ログ
3. スレーブ ライブラリの SQL スレッドはリレー ログを読み取って再生することでデータ レプリケーションを実現します

MySQL 同期データ レプリケーションを実装する方法

MySQL レプリケーション モードには、ステートメント レベル、行レベル、混合レベルの 3 つのタイプがあります。レプリケーションレベルが異なると、マスターサーバーは異なる形式のバイナリログファイルを生成します。

2. 同期データの例

オペレーティング システム: centos7
データベース: mysql8
ホスト (マスター): 192.168.0.101
スレーブ (スレーブ): 192.168.0.102

1. マスター/スレーブの mysql 設定ファイルを変更する

ホスト設定 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

2. ホストは同期アカウントを確立し、メインデータベースのステータス情報を確認します

データベースにログインし、アカウントを作成します

create user repl identified with mysql_native_password by 'repl123';
grant replication slave on *.* to repl;
flush privileges;

メインデータベースのマスターステータスを確認し、ログを取得しますファイル名とオフセット情報

MySQL 同期データ レプリケーションを実装する方法

3. スレーブ同期設定

ホストのバイナリログ操作をコピー(データの一部は、メイン データベース マスター ステータス)
ホストの同期アカウント: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;

4. 同期構成の表示効果

ホスト上で、スレーブからの接続があるかどうかを確認します

show processlist;

スレーブの同期レプリケーションのステータスを確認します

show slave status\G

ホスト上で、テーブルにデータを挿入し、スレーブマシンの対応するテーブルのデータを確認します。テスト結果は非常に良好です(省略)

以上がMySQL 同期データ レプリケーションを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。