ホームページ >データベース >mysql チュートリアル >フェデレーテッド テーブルを使用してクロスサーバー MySQL SELECT クエリを実行するにはどうすればよいですか?

フェデレーテッド テーブルを使用してクロスサーバー MySQL SELECT クエリを実行するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-27 22:40:13424ブラウズ

How Can I Perform Cross-Server MySQL SELECT Queries Using Federated Tables?

フェデレーテッド テーブルを使用した MySQL クロスサーバー選択クエリ

MySQL は、フェデレーテッド テーブルを使用して、異なるデータベース サーバー間でデータをクエリするメカニズムを提供します。これは、サーバーが離れて配置されており、直接接続が不可能な場合に特に役立ちます。

説明したシナリオでは、1.2.3.4 と a.b.c.d に 2 つの MySQL サーバーがあり、それぞれが Test という名前のデータベースをホストしており、次のことができます。フェデレーテッド テーブルを使用して、一方のサーバーから行を選択し、それらをもう一方のサーバーのテーブルに挿入します。

フェデレーテッド テーブルを作成するには、まず次のことが必要です。 2 つのサーバー間に SSH トンネルを確立します。これにより、一方のサーバー (リモート サーバー) からもう一方 (ローカル サーバー) を介して接続できるようになります。

SSH トンネルが確立されたら、次のようにローカル サーバー上にフェデレーテッド テーブルを作成できます。

CREATE TABLE federated_table (
    id     INT(20) NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name   VARCHAR(32) NOT NULL DEFAULT '',
    other  INT(20) NOT NULL DEFAULT '0',
    INDEX name (name),
    INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://fed_user@remote_host:port/database_name/table_name';

ここで:

  • fed_user は、リモートにアクセスできるユーザーです。 table
  • remote_host はリモート サーバーの IP アドレスです
  • port はリモート サーバー上の MySQL インスタンスのポート番号です
  • database_name はリモート データベースの名前ですtable
  • table_name はリモートの名前です。 table

フェデレーテッド テーブルが作成されると、そのテーブルに対して SELECT クエリを実行して、リモート テーブルからデータを取得できます。その後、INSERT ステートメントを使用して、クエリの結果をローカル サーバー上のテーブルに挿入できます。

フェデレーテッド テーブルから行を選択し、それらを local_table という名前のローカル テーブルに挿入するクエリの例を次に示します。

INSERT INTO local_table (id, name, other)
SELECT id, name, other FROM federated_table;

以上がフェデレーテッド テーブルを使用してクロスサーバー MySQL SELECT クエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。