Выберите со второго сервера MySQL - PullRequest
1 голос
/ 31 декабря 2010

Я хотел бы выбрать данные из второй базы данных MySQL для переноса данных с одного сервера на другой.

Я ищу синтаксис, такой как SELECT * FROM username: password@serverip.databaseName.tableName

Возможно ли это?Я мог бы сделать это в Microsoft SQL Server, используя связанные серверы, поэтому я предполагаю, что это возможно и в MySQL.

Ответы [ 3 ]

3 голосов
/ 31 декабря 2010

Вы можете создать таблицу, используя FEDERATED механизм хранения:

CREATE TABLE tableName (id INT NOT NULL, …)
ENGINE=FEDERATED
CONNECTION='mysql://username:password@serverip/databaseName/tableName'

SELECT  *
FROM    tableName

По сути, он будет служить видом на пульт ДУ tableName.

0 голосов
/ 31 декабря 2010

Вы не можете сделать это напрямую, но, как кто-то другой упоминал в комментарии, вы можете использовать mysqldump для экспорта содержимого таблицы в виде сценария SQL.

В этот момент вы могли бызапустите сценарий на новом сервере, чтобы создать таблицу, или, если требуется дополнительная обработка данных, импортируйте эти данные в таблицу с другим именем на новом сервере, а затем напишите запрос для копирования данных оттуда.

0 голосов
/ 31 декабря 2010

Обычно есть два подхода, которые вы можете использовать, хотя ни один из них не похож на тот, который вам нужен:

  1. Используйте replication и настройте мастер /подчиненные отношения между двумя базами данных.

  2. Просто выведите данные (используя командную строку mysqldump ) из 1-й базы данных и импортируйте их во 2-ю.

Однако оба они в конечном итоге перенесут все данные (то есть: не подмножество), хотя вы можете указать конкретные таблицы через mysqldump.Кроме того, если вы используете подход mysqldump и не используете InnoDB, вам нужно убедиться, что исходная база данных не используется (т.е. имеет целостность) при создании дампа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...