Rumah > Artikel > pangkalan data > 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.
#联合查询(不同的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;
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.
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';这句话。
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.
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.
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`;
SELECT * FROM author INNER JOIN `user`;
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!