レプリケーションオプションを評価するときに、スレーブは適用される --replicate-do-db
または --replicate-ignore-db
オプションがあるかどうかを検査することで始めます。--binlog-do-db
または --binlog-ignore-db
を使用するときは、プロセスは似ていますが、オプションはマスター上で検査されます。
ステートメントレベルレプリケーションでは、デフォルトデータベースの一致が検査されます。行ベースレプリケーションでは、データを変更すべきデータベースが検査されるデータベースです。バイナリロギング形式にかかわらず、データベースレベルオプションの検査は次の図で示すように進みます。

関係する手順の一覧は次のとおりです。
-
--replicate-do-db
オプションはありますか ?-
はい それらのいずれかがデータベースに一致しますか ?
はい ステートメントを実行して終了します。
いいえ ステートメントを無視して終了します。
いいえ 手順 2 に進みます。
-
-
--replicate-ignore-db
オプションはありますか ?-
はい それらのいずれかがデータベースに一致しますか ?
はい ステートメントを無視して終了します。
いいえ 手順 3 に進みます。
いいえ 手順 3 に進みます。
-
-
テーブルレベルレプリケーションオプションがある場合、それらの検査に進みます。これらのオプションの検査方法の説明については、セクション17.2.3.2「テーブルレベルレプリケーションオプションの評価」を参照してください。
重要この段階でまだ許可されているステートメントは、実際にはまだ実行されていません。ステートメントはすべてのテーブルレベルオプション (ある場合) が検査されるまで実行されず、そのプロセスの結果がステートメントの実行を許可します。
バイナリロギングの場合、関連する手順の一覧は次のとおりです。
-
--binlog-do-db
または--binlog-ignore-db
オプションはありますか ?はい 手順 2 に進みます。
いいえ ステートメントのログを記録して終了します。
-
デフォルトデータベースはありますか (データベースが
USE
で選択されていますか) ?はい 手順 3 に進みます。
いいえ ステートメントを無視して終了します。
-
デフォルトデータベースがあります。
--binlog-do-db
オプションはありますか ?-
はい それらのいずれかがデータベースに一致しますか ?
はい ステートメントのログを記録して終了します。
いいえ ステートメントを無視して終了します。
いいえ 手順 4 に進みます。
-
-
--binlog-ignore-db
オプションのいずれかがデータベースに一致しますか ?はい ステートメントを無視して終了します。
いいえ ステートメントのログを記録して終了します。
ステートメントベースロギングの場合、CREATE DATABASE
、ALTER DATABASE
、および DROP DATABASE
ステートメントに適用されるルールにだけ例外が作成されています。これらの場合には、更新のログを記録または無視するかを判断するときに、作成、変更、またはドロップされるデータベースがデフォルトデータベースを置き換えます。
--binlog-do-db
は「ほかのデータベースを無視する」ことを意味する場合があります。たとえば、ステートメントベースロギングを使用するときに、--binlog-do-db=sales
だけで動作するサーバーは、デフォルトデータベースが sales
ではないバイナリログステートメントに書き込みません。同じオプションで行ベースロギングを使用するときは、サーバーは sales
内のデータを変更する更新のみのログを記録します。