Junte tabelas de dois servidores diferentes

Eu tenho dois servidores server1 e server2 , agora eu tenho db1 no server1 e db2 no server2 . Eu estou tentando juntar essas duas tabelas no MySQL assim.

 Select a.field1,b.field2 FROM [server1, 3306].[db1].table1 a Inner Join [server2, 3312].[db2].table2 b ON a.field1=b.field2 

Mas estou recebendo erro. É possível no MYSQL.

Sim, é possível no MySQL.

Há perguntas semelhantes feitas anteriormente também. Você precisa usar o FEDERATED ENGINE para fazer isso. A ideia é assim:

Você precisa ter uma tabela federada baseada na tabela em outro local remoto para usar como quiser. A estrutura da tabela tem exatamente o mesmo.

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

[Resposta da fonte]

A replicação será uma solução alternativa e adequada.

server1 – db1 -> replicar para o server2. (agora o db1 e o db2 estarão no mesmo server server2. join será fácil).

OBSERVAÇÃO: Se o servidor2 for capaz de suportar a carga do db1 em termos de armazenamento / processo, etc., então você poderá fazer a replicação. Como @brilliand mencionou sim Federated fará o trabalho muito manual e lento no processo.