Подтвердить что ты не робот

Объединение таблиц с двух разных серверов

У меня есть два разных сервера server1 и server2, теперь у меня db1 в server1 и db2 в server2. Я пытаюсь объединить эти две таблицы в MySQL следующим образом.

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

Но я получаю ошибку. Возможно в MYSQL.

4b9b3361

Ответ 1

Да, это возможно в MySQL.

Аналогичные вопросы заданы ранее. Для этого вы должны использовать FEDERATED ENGINE. Идея такова:

Для использования того, как вы хотите, вы должны иметь федеративную таблицу на основе таблицы в другом удаленном месте. Структура таблицы должна быть точно такой же.

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://[email protected]_host:9306/federated/test_table';

[Исходный ответ]

Ответ 2

Репликация будет альтернативным и подходящим решением.

server1 - db1 → replicate to server2. (теперь db1 и db2 будут на одном сервере server2. Соединение будет простым).

ПРИМЕЧАНИЕ. Если сервер2 достаточно способен загружать db1 с точки зрения сохранения/процесса и т.д., тогда вэнь может выполнить репликацию. Как сказал @brilliand, да Federated будет делать ручную работу и медленный процесс.