Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Melaksanakan Pertanyaan PILIHAN MySQL Pelayan Silang Menggunakan Jadual Bersekutu?

Bagaimanakah Saya Boleh Melaksanakan Pertanyaan PILIHAN MySQL Pelayan Silang Menggunakan Jadual Bersekutu?

Linda Hamilton
Linda Hamiltonasal
2024-11-27 22:40:13501semak imbas

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

MySQL Cross-Server Select Query menggunakan Jadual Bersekutu

MySQL menyediakan mekanisme untuk menanyakan data merentas pelayan pangkalan data yang berbeza melalui penggunaan jadual bersekutu. Ini amat berguna apabila pelayan terletak berasingan dan sambungan langsung tidak dapat dilaksanakan.

Dalam senario yang anda nyatakan, dengan dua pelayan MySQL pada 1.2.3.4 dan a.b.c.d, setiap satu mengehoskan pangkalan data bernama Test, anda boleh gunakan jadual bersekutu untuk memilih baris daripada satu pelayan dan memasukkannya ke dalam jadual pada yang lain.

Untuk mencipta meja persekutuan, anda perlu mewujudkan terowong SSH di antara kedua-dua pelayan. Ini akan membolehkan anda menyambung ke satu pelayan (pelayan jauh) melalui yang lain (pelayan tempatan).

Setelah terowong SSH ditubuhkan, anda boleh mencipta jadual bersekutu pada pelayan tempatan seperti berikut:

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

di mana:

  • fed_user ialah pengguna yang mempunyai akses kepada alat kawalan jauh table
  • remote_host ialah alamat IP pelayan jauh
  • port ialah nombor port bagi contoh MySQL pada pelayan jauh
  • database_name ialah nama pangkalan data jauh yang mengandungi jadual
  • nama_jadual ialah nama jadual jauh

Setelah bersekutu jadual dibuat, anda boleh melaksanakan pertanyaan SELECT padanya untuk mendapatkan semula data daripada jadual jauh. Hasil pertanyaan kemudiannya boleh dimasukkan ke dalam jadual pada pelayan tempatan menggunakan pernyataan INSERT.

Berikut ialah contoh pertanyaan yang memilih baris daripada jadual bersekutu dan memasukkannya ke dalam jadual tempatan bernama local_table:

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

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Pertanyaan PILIHAN MySQL Pelayan Silang Menggunakan Jadual Bersekutu?. 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