Unire le tabelle da due server diversi

Ho due server server1 e server2 , ora ho db1 in server1 e db2 in server2 . Sto cercando di unire queste due tabelle in MySQL come questo.

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

Ma sto ricevendo errore. È ansible in MYSQL.

Sì, è ansible in MySQL.

Ci sono già domande simili poste in precedenza . Devi usare MOTORE FEDERATO per fare questo. L’idea va così:

È necessario disporre di una tabella federata basata sulla tabella in un’altra posizione remota per utilizzare il modo desiderato. La struttura del tavolo deve essere esattamente uguale.

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

[Risposta origine]

La replica sarà una soluzione alternativa e adeguata.

server1 – db1 -> replicare su server2. (ora db1 e db2 saranno nello stesso server server 2. unirsi sarà facile).

NOTA: se il server2 è in grado di sostenere il carico di db1 in termini di store / process ecc., Wen può eseguire la replica. Come @brilliand ha accennato si, Federated renderà il lavoro molto manuale e lento nel processo.