web-dev-qa-db-ja.com

リモートMySQLデータベースをローカルMySQLデータベースに接続していますか?

PHP Drupal7モジュールに埋め込むコードを記述したい。

ローカルMySQLデータベースで新しく生成されたデータをリモートMySQLデータベースにコピーできるプロシージャを呼び出したいのですが。

ローカルデータベースのテーブルAにデータを挿入する場合、リモートMySQLデータベースの特定のテーブルBにデータをコピーする必要があります。

Table 'A' is on local Host.

Table 'B' is on remote server.

INSERT data on 'A' -> copied to 'B'

これは可能ですか?

1
Shashank

これを設定するには3つの方法があります

方法#1:MySQLレプリケーション

スレーブにこのオプションがあるMySQLレプリケーションをセットアップする

replicate_do_table=mydb.mytable

次に、実行するDML(INSERT、UPDATE、DELETE)またはDDL(ALTER TABLE)はすべてserverBにすぐに送られます。これにより、方法#1が最速かつ最も詳細なアプローチになります。

方法#2:テーブルを他のサーバーにコピーする

再ハッシュするのではなく、このメソッドに対して2011年5月31日に行った以前の投稿を次に示します。 MySqlServer_AからMySqlServer_Bにテーブルをコピーするにはどうすればよいですか

方法#3:FEDERATEDテーブル(MyISAMのみ)

ServerAのmytableが次のようになっているとします。

CREATE TABLE mydb.mytable
(
...
) ENGINE=MyISAM;

このようにserverAでこれを実行することにより、serverBのターゲットテーブルのマッピングを行うことができます。

CREATE TABLE mydb.mytable_remote LIKE mytable;
ALTER TABLE mydb.mytable_remote ENGINE=FEDERATED
CONNECTION='mysql://username:password@serverB/mydb/mytable';

2012年1月4日に以前の投稿を書きました: ローカルmysqlサーバー内から外部でホストされているdbのテーブルを取得しています

次に、serverAのすべてをserverBに一括コピーして、serverAで以下を実行する必要があります。

INSERT IGNORE INTO mydb.mytable_remote SELECT * FROM mydb.mytable;
3
RolandoMySQLDBA