この記事では主に MySQL のマスター/スレーブ レプリケーションの実装プロセスを詳しく紹介します。興味のある方は参考にしていただければ幸いです。
1. マスター/スレーブ レプリケーションとは
マスター データベースの DDL および DML 操作をバイナリ ログ (BINLOG) を通じてスレーブ データベースに送信し、これらのログを再実行 (やり直し) します。データベース データはメイン データベースと一貫性を保ちます。
2. マスター/スレーブレプリケーションの役割
1. マスターデータベースに問題が発生した場合、スレーブデータベースに切り替えることができます。
2. データベースレベルで読み取りと書き込みの分離を実行できます。
3. レプリケーションプロセス
のバイナリログ。マスターデータベース
リレーログ:サーバーからのリレーログ
ステップ1:マスターは、各トランザクション更新データが完了する前に、操作レコードをbinlogファイルにシリアルに書き込みます。
ステップ 2: salve は I/O スレッドを開きます。このスレッドはマスター上で通常の接続を開き、その主なジョブは binlog ダンプ プロセスです。読み取りの進行状況がマスターに追いついた場合、マスターはスリープ状態に入り、マスターが新しいイベントを生成するのを待ちます。 I/O スレッドの最終的な目的は、これらのイベントをリレー ログに書き込むことです。
ステップ 3: SQL スレッドはリレー ログを読み取り、ログ内の SQL イベントを順番に実行して、メイン データベース内のデータとの一貫性を保ちます。
4. マスター/スレーブレプリケーションの具体的な操作同じウィンドウ上の異なるパスに 2 つの msyql インスタンスをインストールしました。ここでは、マスターとスレーブ間でインストールされている mysql のバージョンが一貫していることをお勧めしますが、私のバージョンは一貫していません。
1. マスターデータベースとスレーブデータベースの設定ファイル my.ini をそれぞれ変更します
3306 は、mysql のデフォルトのポート番号を変更する必要はありません。ここで、server-id は、異なる mysql インスタンスで重複しないことを指定するために使用されます。binlog-do-db は、バイナリ ログを開くために使用されるデータベースを指定します。ファイル。
マスターデータベースとスレーブデータベースは後で同じコンピューター上で実行されるため、ポートを異なるものに設定する必要があります。ここでは、3307
replicate-do-db: の名前を示します。マスター上の構成と一致するように同期する必要があるデータベース。
2. マスター上でレプリケーション専用のアカウントを作成します: weidai/123456
この新しく追加されたアカウントはテーブル mysql.user でクエリできます:
最後に次のようなエラーがあります:
Weidai アカウントを使用するとマスターに接続できないため、マスターのバイナリログを取得すべきではありませんそのため、リレー ログを生成できなくなります。
アカウントとパスワードを繰り返し確認しましたが、問題はありませんでした。その後、関連情報を検索したところ、マスターが新しいユーザーを作成するときに、次の手順が欠落していたためであることがわかりました。
新しいユーザーを設定した後、または変更した後。パスワードを指定するには、MySQL のシステム権限関連テーブルを更新するためにフラッシュ権限を使用する必要があります。そうしないと、アクセスが拒否されます。これが、前のエラーが発生した理由です。もう 1 つの方法は、mysql サーバーを再起動して新しい設定を有効にすることです。
3. 現時点でのメインデータベース内のデータの位置を取得します。ただし、このステータス値を取得する前に、データの開始位置をコピーするために使用されます。データを変更できなくなるため、最初に読み取りロックを有効に設定する必要があります
4. メイン ライブラリはデータのバックアップを実行します。バックアップの方法はここでは紹介しません。バックアップが完了したら、読み取りロックを解除して、メイン ライブラリを実行できます。書き込み操作
5 、スレーブ データベースを起動し、バックアップしたばかりのデータを復元します。この時点では、バックアップ時点のマスター データベースとスレーブ データベースのデータは一致しています。
6. データベースからのレプリケーション動作に関連する設定
7. この時点では設定は完了していますが、スレーブ データベースはまだ同期できないため、スレーブ スレッドを開始する必要があります
8. マスターでテーブルを作成し、新しく追加したデータをスレーブで観察します。
マスターで実行した操作がスレーブに反映されていることがわかります。このとき、スレーブは次のようになります。マスターの鏡。
5. マスターとスレーブの同期ステータスの解釈
スレーブでコマンドを使用して表示します:
レイアウトがあまりにも醜いので、次のようにコンパイルしました:
Slave_IO_STATE: マスターの待機中イベントを送信
Master_host: 127.0.0.1
Master_user:weidai
Master_port:3306
connnect_retry:60
Master_log_file:mysql-bin.000005
Read_Master_log_pos:1662
Relay_log_file:AE6 Z*****-リレービン.000002
Relay_log_pos:1415
Slave_IO_Running:yes
Slave_SQL_Running:yes
---------------------------- ------ -----------------------ゴージャスな分割ライン------ ----- -------------------
Slave_IO_Running:yes
Slave_SQL_Running:yes
これら 2 つのスレッドは前述したもので、スレーブ上のレプリケーションプロセスは非常に重要なスレッドです。 YESは正常、NOは異常を意味します。
Slave_IO スレッドは主にマスターの binlong ログの内容をスレーブのリレー ログ (Relay_log) にコピーします。一般に、問題が発生する可能性はほとんどなく、アクセス許可またはネットワークの問題が原因で発生します。マスター。 。先ほどのエラーと同じです。
Slave_SQL スレッドはリレー ログ内の SQL を実行する責任があり、エラーの可能性が比較的高くなります。誰かがスレーブ データベースに手動でレコードを挿入すると、マスターとスレーブの同期中に主キーの競合が発生します。
Slave_IO_STATE: マスターがイベントを送信するのを待っています
このステータスは、リレーログの同期が完了し、マスターによって生成される新しいイベントを待っていることを示します。
関連する推奨事項:
MySQL 5.7.18 マスター/スレーブ レプリケーションのマスター/スレーブ インスタンスを構築する方法の詳細な説明
MySQL マスター/スレーブ レプリケーションに基づく Mycat の読み取り/書き込み分離の例
MySQL がマスター/スレーブ レプリケーションを実装する方法 プロセスの詳細な例 (写真)
以上がMySQLのマスター/スレーブレプリケーションプロセスの詳細説明_MySQLのサンプルの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

todropaviewinmysql、 "dropviewifexistsview_name;" andtomodifyaviewを使用して、 "createorreplaceviewview_nameasselect ..."を使用します

mysqlviewscanefectiveativeativeizedesignpatternslikeadapter、decorator、factory、andobserver.1)adapterpatternadaptsdatafromdifferenttablesintoaunifiedview.2)decoratorpatternenhancesdatawithedfieldsfieldsiffieldsiffieldsiffiedを

viewsinmysqlarebenefentialforsimprifiningcomplexqueries、拡張セキュリティ、ダタコンシーニング、および最適化されたパフォーマンスを保証する1)itsmplifyififycomplexqueriesbyencapsulsingthemintoreusableviews.2)viewsencurationecuritybycontrollingcescesces.3)

to CreateAsimpleviewinmysql、usethecreateviewstatement.1)DefinetheTheTheThecreateview_nameas.2)SpecifyTheSelectStatementtatementtatementtatementtatementtatementtatementedeSireddata.3)

tocleateusersinmysql、usethecreateuserstatement.1)foralocaluser:createUser'localuser '@' localhost'identifidedifiedifiedified 'securepassword';

mysqlviewshavelimitations:1)supportallsqloperations、制限、dataManipulationswithjoinsorubqueries.2)それらは、特にパフォーマンス、特にパルフェクソルラージャターセット

reperusermanmanagementInmysqliscialforenhancingsecurationsinginuring databaseaperation.1)usecreateusertoaddusers、指定connectionsourcewith@'localhost'or@'% '。

mysqldoes notimposeahardlimitontriggers、しかしpracticalfactorsdeTerminetheireffectiveuse:1)serverconufigurationStriggermanagement; 2)complentiggersincreaseSystemload;


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。
