Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk melaksanakan pertanyaan bersama silang pangkalan data jauh mysql

Bagaimana untuk melaksanakan pertanyaan bersama silang pangkalan data jauh mysql

PHPz
PHPzke hadapan
2023-06-02 22:32:522103semak imbas

Situasi 1: Dua perpustakaan berada pada hos fizikal yang sama

Bagaimana untuk melaksanakan pertanyaan bersama silang pangkalan data jauh mysql

Pertanyaan bersama (dua perpustakaan berbeza, perpustakaan myemployees dan perpustakaan shoppingCart), kedua-dua perpustakaan ini berada pada satu Pada setiap hos fizikal, mereka semua berada di mesin tempatan saya.

Bagaimana untuk melaksanakan pertanyaan bersama silang pangkalan data jauh mysql

#联合查询(不同的2个库,myemployees库和shoppingCart库)
SELECT emp01.`employee_id`, emp01.`first_name` FROM myemployees.employees AS emp01 LIMIT 0, 5
UNION
SELECT emp02.`employee_id`, emp02.`first_name` FROM shoppingCart.`employees2` AS emp02;
#
SELECT emp01.`employee_id`, emp01.`first_name` FROM myemployees.employees AS emp01 LIMIT 0, 5
UNION ALL
SELECT emp02.`employee_id`, emp02.`first_name` FROM shoppingCart.`employees2` AS emp02;

Kes 2: Kedua-dua perpustakaan tidak berada pada hos fizikal yang sama (iaitu, kedua-dua perpustakaan berada pada hos fizikal yang berbeza)

Secara teratur untuk menunjukkan kesannya, saya di sini Menggunakan mesin maya saya, saya memasang sistem Linux (centos) dalam mesin maya Pangkalan data MySql telah dipasang dalam sistem Linux, perkhidmatan pangkalan data MySql telah dimulakan, dan semua persekitaran telah. dijaga.

IP sistem Linux saya (centos) ialah 192.168.117.66.

Bagaimana untuk melaksanakan pertanyaan bersama silang pangkalan data jauh mysql

Bagaimana untuk melaksanakan pertanyaan bersama silang pangkalan data jauh mysql

Bagaimana untuk melaksanakan pertanyaan bersama silang pangkalan data jauh mysql

Bagaimana untuk melaksanakan pertanyaan bersama silang pangkalan data jauh mysql

Bagaimana untuk melaksanakan pertanyaan bersama silang pangkalan data jauh mysql

Saya merancang untuk melakukan pertanyaan bersama antara jadual pengarang tempatan saya dan jadual pengguna jauh.

Selepas memasukkan SHOW CREATE TABLE `pengguna`; dalam linux dan mendapat hasilnya, kami menyalin kod

CREATE TABLE IF NOT EXISTS `user` (
  `id` INT(11) DEFAULT NULL,
  `name` VARCHAR(20) DEFAULT NULL
)

ke pangkalan data tempatan saya, dan Tambah

ENGINE =FEDERATED CONNECTION='mysql://root:root@192.168.117.66:3306/testDB/user';这句话。

Bagaimana untuk melaksanakan pertanyaan bersama silang pangkalan data jauh mysql

CREATE TABLE IF NOT EXISTS `user` (
  `id` INT(11) DEFAULT NULL,
  `name` VARCHAR(20) DEFAULT NULL
)ENGINE =FEDERATED CONNECTION='mysql://root:root@192.168.117.66:3306/testDB/user';

pada akhirnya, kenyataan di atas, secara terang-terangan, adalah untuk membuat sambungan pangkalan data jauh dalam pangkalan data tempatan saya pintasan) , apakah persamaannya? Ia serupa dengan pintasan desktop pada desktop dalam sistem pengendalian tetingkap kami. Kami boleh membuka ikon perisian dengan mengklik dua kali pada desktop Ia adalah prinsip yang sama.

Hanya laksanakan pernyataan di atas.

Dengan cara ini, ada satu lagi perkara yang perlu diberi perhatian:

Anda perlu menyemak sama ada Enjin PERSEKUTUAN tempatan anda pangkalan data mysql belum dihidupkan.

SHOW ENGINES;

Jika FEDERATED TIDAK, bermakna ia tidak didayakan dan anda perlu mengubah suai fail konfigurasi pangkalan data mysql.

Bagaimana untuk melaksanakan pertanyaan bersama silang pangkalan data jauh mysql

Ubah suai fail konfigurasi pangkalan data mysql setempat dan tambah bersekutu pada penghujung fail konfigurasi, seperti ditunjukkan di bawah:

Jika anda menggunakan Windows Jika anda menggunakan sistem Linux, ubah suai fail my.ini Jika anda menggunakan sistem Linux, ubah suai fail my.cnf.

Bagaimana untuk melaksanakan pertanyaan bersama silang pangkalan data jauh mysql

Ingat untuk memulakan semula perkhidmatan mysql selepas mengubah suai fail konfigurasi.

linux memulakan semula perkhidmatan mysql, perkhidmatan mysqld dimulakan semula.

Mulakan semula perkhidmatan mysql dalam tingkap Dalam tetingkap dos, masukkan nama perkhidmatan mysql hentian bersih, dan kemudian masukkan nama perkhidmatan mysql mula bersih .

OK, selepas semuanya selesai, laksanakan pernyataan sql berikut untuk melihat hasil pertanyaan pertanyaan silang pangkalan data.

#
SELECT id, aname FROM author
UNION
SELECT id, `name` FROM `user`;

Bagaimana untuk melaksanakan pertanyaan bersama silang pangkalan data jauh mysql

SELECT * FROM author INNER JOIN  `user`;

Bagaimana untuk melaksanakan pertanyaan bersama silang pangkalan data jauh mysql

Untuk pertanyaan silang pelayan dan silang pangkalan data di atas, anda perlu memberi perhatian kepada perkara berikut :

1 Kaedah pertanyaan silang pangkalan data ini tidak menyokong transaksi, jadi sebaiknya jangan gunakan transaksi.

2. Struktur jadual tidak boleh diubah suai.

3.MySQL menggunakan kaedah pertanyaan silang pangkalan data ini Pada masa ini pangkalan data jauh hanya menyokong MySQL dan pangkalan data lain tidak menyokongnya.

4. Struktur jadual mestilah konsisten sepenuhnya dengan jadual pangkalan data sasaran.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pertanyaan bersama silang pangkalan data jauh mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam