Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Melaksanakan Pertanyaan PILIH MySQL Pelayan Silang Menggunakan Jadual Bersekutu dan Terowong SSH?

Bagaimanakah Saya Boleh Melaksanakan Pertanyaan PILIH MySQL Pelayan Silang Menggunakan Jadual Bersekutu dan Terowong SSH?

Patricia Arquette
Patricia Arquetteasal
2024-12-01 13:31:12813semak imbas

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

MySQL Cross-Server Select Query melalui SSH Tunnel dan Federated Tables

Untuk melaksanakan pertanyaan pilih silang pelayan menggunakan MySQL, pendekatan biasa adalah untuk mencipta jadual bersekutu pada salah satu pelayan. Dengan mencipta jadual bersekutu berdasarkan jadual jauh, anda boleh menanyakan data seolah-olah semuanya terletak secara setempat.

Langkah:

  1. Tubuhkan terowong SSH untuk menyambungkan dua pelayan.
  2. Tentukan jadual pada alat kawalan jauh pelayan.
  3. Buat jadual bersekutu pada pelayan tempatan yang menghala ke jadual jauh. Gunakan sintaks berikut:
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. Setelah jadual persekutuan dibuat, anda boleh menanyakannya seolah-olah ia adalah jadual tempatan. Jadual persekutuan akan mengendalikan komunikasi dengan pelayan jauh secara telus.

Contoh:

Pertimbangkan persediaan berikut:

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

Anda boleh mencipta jadual bersekutu pada pelayan 1.2.3.4 untuk mengakses jadual pada pelayan a.b.c.d menggunakan yang berikut pertanyaan:

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';

Setelah jadual persekutuan dibuat, anda boleh membuat pertanyaan seperti berikut:

SELECT * FROM federated_table;

Pertanyaan ini akan mendapatkan semula baris daripada jadual test_table pada pelayan a.b.c.d.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Pertanyaan PILIH MySQL Pelayan Silang Menggunakan Jadual Bersekutu dan Terowong SSH?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn