私が持っているもの:
Test
データベースには、activity
というテーブルがあり、列id
およびclass
があります。私が必要なもの:
test.activity
テーブルをtest2
データベースにTest.activity.class = 'B'
という条件で複製します。別のサーバーで複製する方法を知っています。しかし、異なるデータベース内の同じサーバーではありません。 this link を確認しましたが、十分な情報が得られません。
それは通常の状況ではありません!レプリケーション中にデータベースを変更することはできません。マスター/スレーブは同じサーバーIDを持つことができません。これを行う必要がある場合は、最初のDBにいくつかのトリガーを設定して、2番目のDBに対して挿入/更新コマンドを複製することをお勧めします。
私があなたのニーズを正しく理解していれば、1つの単一サーバー(OS)に2つのMySQLインスタンスを作成でき、そのうちの1つをマスターとして、もう1つをスレーブとして構成できます。異なるmy.confを作成する必要があります。my1.confとmy2.confという名前を付け、ポート番号とソケットパス、およびログエラーパスと他のいくつかのパラメーターがそれぞれ異なるようにします。このアプローチでは、構成が異なる2つのMySQLデーモンを実行します。完全なドキュメントについては、 https://dev.mysql.com/doc/refman/5.1/en/multiple-servers.html にアクセスしてください。
Mysqlサンドボックスを試してください、それはおそらくあなたの問題を解決します( http://mysqlsandbox.net/ )
なぜなら:
test.activity.class = 'B'の条件でtest.activityテーブルをtest2データベースに複製します。
ネイティブレプリケーションは役に立ちません。この場合、両方のデータベースを同じサーバーに残し、マスターデータベースにINSER/UPDATE/DELETEのトリガーをインストールするだけの方が良いです。マスターデータベースに条件をチェックし、2番目のデータベースに直接変更を加えます。
これが最も簡単な方法です。他にも多くの可能性があります。