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

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

Patricia Arquette
リリース: 2024-12-01 13:31:12
オリジナル
775 人が閲覧しました

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

SSH トンネルとフェデレーテッド テーブルを介した MySQL クロスサーバー選択クエリ

MySQL を使用してクロスサーバー選択クエリを実行するには、一般的なアプローチサーバーの 1 つにフェデレーテッド テーブルを作成することです。リモート テーブルに基づいてフェデレーテッド テーブルを作成すると、データがすべてローカルに配置されているかのようにクエリを実行できます。

手順:

  1. SSH トンネルを確立する2 つのサーバーを接続します。
  2. リモート サーバー上にテーブルを定義します。
  3. 作成リモートテーブルを指すローカルサーバー上のフェデレーテッドテーブル。次の構文を使用します:
CREATE TABLE federated_table (
    id     INT(20) NOT NULL AUTO_INCREMENT,
    name   VARCHAR(32) NOT NULL DEFAULT '',
    other  INT(20) NOT NULL DEFAULT '0',
    PRIMARY KEY  (id),
    INDEX name (name),
    INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://fed_user@remote_host:9306/federated/test_table';
ログイン後にコピー
  1. フェデレーテッド テーブルが作成されると、ローカル テーブルであるかのようにクエリを実行できます。フェデレーテッド テーブルは、リモート サーバーとの通信を透過的に処理します。

例:

次のセットアップを考えてみましょう:

Server IP Database
1.2.3.4 Test
a.b.c.d Test

サーバー 1.2.3.4 上にフェデレーテッド テーブルを作成し、次を使用してサーバー a.b.c.d 上のテーブルにアクセスできます。次のクエリ:

CREATE TABLE federated_table (
    id     INT(20) NOT NULL AUTO_INCREMENT,
    name   VARCHAR(32) NOT NULL DEFAULT '',
    other  INT(20) NOT NULL DEFAULT '0',
    PRIMARY KEY  (id),
    INDEX name (name),
    INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://fed_user@a.b.c.d:9306/Test/test_table';
ログイン後にコピー

フェデレーテッド テーブルが作成されたら、次のようにクエリできます:

SELECT * FROM federated_table;
ログイン後にコピー

このクエリは、サーバー a.b.c.d.

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート