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

MySQL - объединяется между базами данных на разных серверах с помощью Python?

В MySQL у меня есть две разные базы данных - позвоните им A и B.

База данных A располагается на сервере server1, а база данных B располагается на сервере server2.

Оба сервера { A, B} физически близки друг к другу, но находятся на разных машинах и имеют разные параметры подключения (другое имя пользователя, другой пароль и т.д.).

В таком случае возможно ли выполнить соединение между таблицей, находящейся в базе данных A, с таблицей, находящейся в базе данных B?

Если да, то как это сделать, программно, в python? (Я использую python MySQLDB для отдельного взаимодействия с каждой из баз данных).

4b9b3361

Ответ 1

Попробуйте использовать FEDERATED Storage Engine.

Обходной путь: можно использовать другую СУБД для извлечения данных между двумя базами данных, например, вы могли бы сделать это с помощью связанных серверов в MS SQL Server (см. sp_addlinkedserver хранимая процедура). Из документации:

Связанный сервер позволяет получить доступ к распределенным гетерогенным запросам к источникам данных OLE DB.

Ответ 2

Это очень просто - выберите данные с одного сервера, выберите данные с другого сервера и агрегируйте с помощью Python. Если вы хотите получить SQL-запрос с JOIN - поместите результат с обоих серверов в отдельные таблицы в локальной базе данных SQLite и напишите SELECT с помощью JOIN.

Ответ 3

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

Один набор данных находится под контролем одной копии MySQL, а другой набор данных находится под контролем другой копии MySQL. Запрос может обрабатываться только одним из (MySQL) серверов.

Если вы создаете копию второй базы данных на первом сервере или наоборот (тот, который получает наименьшее количество обновлений, лучше всего), вы можете настроить репликацию, чтобы обновить копию. Затем вы сможете выполнить запрос так, как хотите.