centos7.3、MySQL5.7
MySQL インストール リファレンス前の記事 https:// www .jianshu.com/p/452aa99c7476 に説明があります。
MySQL の組み込みレプリケーション機能は、大規模で高性能なアプリケーションを構築するための基盤です。数億の MySQL データを複数のシステムに分散 この分散メカニズムは、特定の MySQL ホストのデータを他のホスト (スレーブ) にコピーし、再度実行することで実現されます。レプリケーション中、1 つのサーバーがサーバーとして機能し、1 つ以上の他のサーバーがスレーブとして機能します。マスターはバイナリ ログに更新を書き込み、ログのローテーションを追跡するためにファイルのインデックスを維持します。これらのログは、スレーブ サーバーに送信された更新を記録します。スレーブがマスターに接続すると、スレーブがログで読み取った最後に成功した更新の場所をマスターに通知し、スレーブはそれ以降に発生した更新を受信し、ブロックするなどします。マスターは新しい更新を通知します。複製するときは、複製テーブルに対するすべての更新をマスター サーバー上で行う必要があることに注意してください。それ以外の場合は、マスター サーバー上のテーブルに対してユーザーが行った更新とサーバー上のテーブルに対する更新の間の競合を避けるように注意する必要があります。
私が書いた記事に従って MySQL をインストールした場合、my.cnf 構成ファイルは /etc/ ディレクトリにあります。そこにない場合は、whereis コマンドを使用して検索できます。my.cnf 構成ファイルに次の構成を追加します。
server_id=1 #指定MySQL的id log-bin=mysql-bin #开启二进制日志文件
メイン サーバー (ここではすべてが許可されています。アドレス アクセス。スレーブ サーバーのアドレスに設定することをお勧めします)
GRANT REPLICATION SLAVE ON *.* to 'replication'@'%' identified by 'Abc123...';
server_id=2 log-bin=mysql-bin binlog_do_db=db_test#表示要同步的数据库
手順: binlog-ignore- db=test は、非同期のテスト データベースを意味します。 binlog_do_db=db_test #同期するデータベースを示します。
マスター サーバーとスレーブ サーバーの両方を再起動します。
service mysqld restart
show master status
結果は次のようになります:
スレーブ サーバーを構成するときに使用する必要がある、いくつかの情報をここに記録する必要があります# 6.スレーブ サーバー (マスター サーバーに接続します)
change master to master_host='192.168.74.129',master_user='replication',master_password='Abc123...',master_log_file='mysql-bin.000001',master_log_pos=2041;
master_host はマスター サーバーの IP です master_port=3306 (ここには設定はありません。デフォルトは 3306) master_user: マスター サーバーの承認されたユーザー、つまりマスターの前に作成されたユーザー master_password: マスター サーバーの許可されたユーザーに対応するパスワード master_log_file: マスター ビンログ ファイル名 master_log_pos: 位置の値に関するマスター ビンログ ファイル内の位置の値 ここで注意してください: マスター サーバーにすでに大量のデータがある場合は、最初に次のことを行う必要があります。マスター サーバーのデータをスレーブ サーバーにバックアップし、show master status コマンドを使用して、同期を開始する必要がある場所を記録します。 # 7. レプリケーションを開始し、スレーブ サーバーで
start slave
を実行します。停止コマンドは次のとおりです: stop smile; 丸で囲まれた 2 つの結果は「はい」で、マスター/スレーブ レプリケーション構成が成功したことを示します。構成が失敗した場合は、MySQL ログ ファイルで失敗情報を確認するか、上記のコマンドを使用して簡単なエラー メッセージを確認できます。
This is the master-構成したばかりのスレーブ サーバー エラーの主な理由は、MySQL サーバーの UUID が競合することです。その理由は、スレーブ サーバーがマスター サーバーからコピーされたためです。 /var/lib/mysql/auto.cnf に移動して変更するだけです。 #マスター/スレーブ結果の現在のステータスを確認します:
## 以下の新しいテーブルを作成して、同期できるかどうかを確認します:#スレーブ サーバーを表示する
過去に同期・同期されていることがわかります
MySQL 関連の技術記事の詳細については、MySQL チュートリアル 列にアクセスして学習してください。
以上がMySQLがマスタースレーブレプリケーション機能を実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。