メインライブラリの構成 1. MySQLを設定する vim /etc/my.cn # ファイルに次の内容を追加します server-id=1 # サーバー ID が一意であることを確認します log-bin = /var/lib/mysql/mysql-bin.log binlog-do-db = db1 binlog-do-db = db2 このうち、db1 と db2 はマスタースレーブレプリケーションを予定しているライブラリです。複数ある場合は複数行記述するだけです。設定後、データベースを再起動します: 2. レプリケーションユーザーを追加する phpmyadmin を使用して、新しいユーザーを追加し、REPLICATION SLAVE 権限を付与します。または、root ユーザーとして mysql にログインし、権限を付与します。 'password' で識別される 'repl'@'%' に *.* のレプリケーション スレーブを許可します ここで、repl はユーザー名、password はそのユーザーのパスワードです。 3. データをダンプする 新しいデータが生成されないことを保証できる場合は、データベースをロックする必要はありません。これを保証できない場合は、ダンプ データごとにデータベースをロックする必要があります。 db1 を使用します。 読み取りロック付きでテーブルをフラッシュします。 次にデータをダンプします。 mysqldump -uroot -p db1 > db1.sql データベースが複数ある場合は、上記のプロセスを複数回繰り返します。 4. バイナリファイルの場所を確認する MySQL に root としてログインし、マスターのステータスを確認します。 マスターステータスを表示します。 このコマンドは、次の形式に似た出力を生成します。 +-----------------+-----------+----------------+------------------+ | ファイル | 位置 | Binlog_Do_DB | Binlog_Ignore_DB | +-----------------+-----------+----------------+------------------+ | mysql-bin.00002 | 445 | db1、db2 | | +-----------------+-----------+----------------+------------------+ セット内の 1 行 (0.00 秒) 5. ロック解除 エクスポート数が 1 で、データベースが読み取りロックされている場合は、それを解除する必要があります。 db1 を使用します。 テーブルのロックを解除します。 この時点で、メイン データベースの構成は完了です。特に、 ライブラリからの設定 1. 新しいデータベースを作成する まず、スレーブ ライブラリに同じ名前のデータベースを作成します。 2. スレーブデータベースを構成する vim /etc/my.cnf # my.cnf に次の内容を追加します。 server-id = 2 # ID が一意であることを確認してください relay-log = /var/lib/mysql/mysql-relay-bin.log 複製ワイルドドゥテーブル = db1.% 複製ワイルドドゥテーブル = db2.% 複数のデータベースを同期する場合、replicate-wild-do-table は複数行を書き込む必要があります。設定後、データベースを再起動します。 3. データのインポート マスター サーバーからダンプされたデータをスレーブ サーバーにインポートします。 mysql -uroot -p db1 < db1.sql 4. マスタースレーブ同期を構成する MySQL サーバーにログインし、同期されたマスター サーバー情報を設定します。 > マスターをmaster_host='xxx.xxx.xx.xx'に変更します。 > マスターユーザー='repl', > master_password='パスワード', > マスターログファイル='mysql-bin.00000x', > マスターログ位置 = xxxx; 設定後、マスターとスレーブの同期を開始します: テスト マスターデータベースへの新規レコードの追加やテーブルの追加などの操作は、ほぼリアルタイムでスレーブデータベースに反映されます。 上記は、MySQL マスタースレーブレプリケーション構成プロセスの詳細です。MySQL マスタースレーブレプリケーション構成の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Zabbix でフィルターを使用して監視を実装する方法
>>: Vue3 カプセル化された虫眼鏡コンポーネントのサンプルコード
MySQLの読み書き分離の落とし穴読み取りと書き込みの分離の主な目的は、メイン データベースの負荷を...
表示するデータが多い場合、1 つのチャートに表示しても効果はよくありません。このとき、2 つのチャー...
目次序文1. es6の前にオブジェクトを作成する2. es6 後のクラス宣言3. クラスの継承4. ...
序文プロジェクトでは中間層としてNodeを使用し、Nodeのデプロイにはdockerを使用します。こ...
目次序文1. クロスドメインの問題はなぜ発生するのでしょうか? 2. 解決策クロスオリジンリソース共...
目次1. スロットを使用する理由1.1 スロット1.2 コンポーネントのスロット1.3 例2. この...
序文:この知識を理解する必要がある人は、すでにプロセス間通信とスレッド間通信の基本的な理解を持ってい...
今日、小さなプログラムを書いていたときに、スクロールビューを使用したのですが、スクロールビュー内のテ...
目次1. Dockerのセキュリティ問題2. Dockerアーキテクチャの欠陥とセキュリティメカニズ...
目次1. 共同インデックスの説明2. ac はインデックスを使用できますか? 3. 考える4. 最左...
マイグレーションMySQL 入門MySQL はもともとオープンソースのリレーショナル データベース管...
1. 文法: <meta name="名前" content="...
新しい質問急いで来て、急いで行ってください。 「垂直グリッドとプログレッシブ行間隔 (パート 1)」...
目次1. 自己列挙可能なプロパティ2. Object.values()はプロパティ値を返します3. ...
弊社のプロジェクトは Java で開発され、ミドルウェアは Tomcat でした。運用中に、Tomc...