web-dev-qa-db-ja.com

異なるデータベース内の同じサーバーでのレプリケーション。 Mysql 5.6

私が持っているもの:

  • mySQL 5.6 Serverのインスタンスが1つあるWindowsマシン。
  • testとtest2という名前の2つのデータベース。
  • Testデータベースには、activityというテーブルがあり、列idおよびclassがあります。

私が必要なもの:

  • test.activityテーブルをtest2データベースにTest.activity.class = 'B'という条件で複製します。

別のサーバーで複製する方法を知っています。しかし、異なるデータベース内の同じサーバーではありません。 this link を確認しましたが、十分な情報が得られません。

3
Ankit Kapoor

それは通常の状況ではありません!レプリケーション中にデータベースを変更することはできません。マスター/スレーブは同じサーバーIDを持つことができません。これを行う必要がある場合は、最初のDBにいくつかのトリガーを設定して、2番目のDBに対して挿入/更新コマンドを複製することをお勧めします。

0
Dave Rix

同じサーバー上にあるので、これにトリガーを使用してみませんか?

データを複製するだけの場合は、更新、挿入、またはその両方で必要なものを追加できます。このように、あなたはあなたの状態を簡単に使うことができます。マスター/スレーブ複製は、異なるサーバーに適しています。

Mysqlトリガーの例については、 ここ を参照してください。そして here はあなたのケースのサンプルです。

0
mim.

私があなたのニーズを正しく理解していれば、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 にアクセスしてください。

0
nima0102

Mysqlサンドボックスを試してください、それはおそらくあなたの問題を解決します( http://mysqlsandbox.net/

0
greenlitmysql

なぜなら:

test.activity.class = 'B'の条件でtest.activityテーブルをtest2データベースに複製します。

ネイティブレプリケーションは役に立ちません。この場合、両方のデータベースを同じサーバーに残し、マスターデータベースにINSER/UPDATE/DELETEのトリガーをインストールするだけの方が良いです。マスターデータベースに条件をチェックし、2番目のデータベースに直接変更を加えます。

これが最も簡単な方法です。他にも多くの可能性があります。

0
a_vlad