2012-05-09 3 views
4

Как скопировать таблицу с сервера базы данных db1 на сервер B базы данных db2?Копирование содержимого MySQL таблицы с одного сервера на другой сервер

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

CREATE TABLE recipes_new LIKE production.recipes; 
INSERT recipes_new SELECT * FROM production.recipes; 

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

+0

возможно дубликат [копировать MySql БД с одного сервера к другому] (http://stackoverflow.com/questions/971728/copy-mysql-db-from-one-server-to-another) – hakre

+0

Какое соединение у вас между сервером A и B? –

+0

@Attila Fulop: Оба сервера находятся в одной сети, возможно, в интранете. – Ranjith

ответ

0

Вы можете экспортировать всю базу данных, если размер мал иначе вы можете экспортировать только структуру базы данных. Когда вы выбираете Db в phpmysql, существует одна ссылка, называемая export.

Нажмите на него, сохраните его в один файл. и импортировать тот же файл на другом сервере.

+0

Я хочу его, хотя программа не поддерживает инструмент phpmyadmin. – Ranjith

+0

AFAIK невозможно сделать то, что вы хотите с запросом. Вы должны использовать mysqldump/mysqlimport как aleroot, указанный в другом ответе! Или напишите программу-оболочку для тех функций, которые автоматически экспортируют/импортируют. – SJFrK

+0

«Ограничение малого размера» предназначено для phpMyAdmin и других webtools, которые имеют ограничение выполнения и памяти. Если вы используете командную строку как состояние aleroot, вы можете экспортировать тонну данных. Я обрабатывал большие базы данных, которые экспортировались в текстовый дамп 2 Гб без проблем (кроме ожидания, потребовалось более часа назад, чтобы переименовать базу данных). – SJFrK

8

Вы можете вывести таблицу с mysqldump и импортировать сбрасывали файл в другом сервере:

mysqldump - root -p db1 tabletoexp > table.sql 

и с другой стороны:

mysql -u root -p db2 < table.sql 
+1

Вы также можете сделать это, не создавая промежуточный файл: «mysqldump - root -p db1 tabletoexp | mysql -u root -p db2» Если они находятся на разных серверах, используйте «-h имя хоста» с обеих сторон. –

Смежные вопросы