Импорт базы данных MySQL с одного сервера на другой - PullRequest
12 голосов
/ 10 декабря 2010

У меня есть два выделенных сервера с корневым доступом.Оба работают под управлением Linux.Я хочу импортировать базу данных с сервера1 на сервер2.Я уже создал пустую базу данных на Server2.Я хочу знать команду Linux, с помощью которой я могу импортировать базу данных напрямую?Есть ли такая особенность?Могу ли я использовать mysqldump?Я хочу избежать создания резервной копии базы данных на сервере server1, затем переместить этот файл на server2 и затем импортировать этот файлМожно ли выполнить импорт напрямую с помощью какой-либо команды?

Спасибо

Ответы [ 3 ]

13 голосов
/ 10 декабря 2010

Если вы хотите избежать создания файла, его передачи и загрузки, вы можете просто направить mysqldump либо в mysql, запущенный на другом сервере, либо в ssh mysql на другом сервере.

Использованиеmysql для подключения к удаленному блоку:

mysqldump --all-databases | mysql -h yourserver.com 

Использование ssh для подключения к другому серверу

mysqldump --all-databases | ssh user@yourserver.com mysql 

Используйте mysqldump --all-database для их передачи или просто укажитеимена баз данных.Обратитесь к документации mysqldump для получения дополнительных опций.

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

2 голосов
/ 11 декабря 2010

Остановите mysqld на первом сервере, скопируйте каталог данных (обычно / var / lib / mysql) с сервера 1 на сервер 2, запустите mysqld на втором сервере и теперь он будет идентичен первому.

Вам не нужно использовать инструменты импорта / экспорта, если вы можете остановить сервер во время копирования файлов данных.Особенно, если вы можете сжать файлы перед их копированием, это будет самый быстрый способ.

1 голос
/ 11 декабря 2010
mysqldump –add-drop-table –extended-insert –force –log-error=error.log -uUSER -pPASS OLD_DB_NAME | ssh -C user@newhost “mysql -uUSER -pPASS NEW_DB_NAME”

Создает дамп базы данных MySQL по сжатому туннелю SSH и использует ее в качестве входных данных для mysql

source

...