Импорт базы данных MySQL с одного сервера на другой
У меня есть два выделенных сервера с корневым доступом. Оба работают под управлением Linux. Я хочу импортировать базу данных с сервера1 на сервер2. Я уже создал пустую базу данных на Server2. Я хочу знать команду Linux, с помощью которой я могу импортировать базу данных напрямую? Есть ли такая особенность? Могу ли я использовать mysqldump? Я хочу избежать сначала создания резервной копии базы данных на сервере server1, затем перемещения этого файла на server2, а затем импорта этого файла. Можно ли выполнить импорт напрямую с помощью какой-либо команды?
Спасибо
3 ответа
Если вы хотите избежать создания файла, его передачи и загрузки, вы можете просто направить 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, хотя это займет немного больше времени для установки и довольно сложно. Вероятно, не стоит тратить время и усилия только на одну миграцию.
Остановите mysqld на первом сервере, скопируйте каталог данных (обычно /var/lib/mysql) с сервера 1 на сервер 2, запустите mysqld на втором сервере, и теперь он будет идентичен первому.
Вам не нужно использовать инструменты импорта / экспорта, если вы можете остановить сервер во время копирования файлов данных. Особенно, если вы можете сжать файлы перед их копированием, это будет самый быстрый способ.
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