Назад | Перейти на главную страницу

Как использовать базу данных импорта SSH в MySQL?

У меня база данных побольше (2,1 ГБ). Я хочу ввести его в mysql в серверной части. Если я выведу его из mysql в локальной части с помощью tar.gz формат, у него 420 МБ, если оставить sql формат, он имеет 2,1 ГБ.

Как использовать базу данных импорта SSH в MySQL? какой-то метод здесь поддерживает только формат sql:

# mysql -u username -p database_name < file.sql

передать 420MB tar.gz в серверную часть, чем распаковать? (может долгое время при распаковке) разрезать sql на много частей? Или получше?

Другой вопрос, стоит ли модифицировать my.cnf для поддержки ввода файла большого размера?

С уважением.

У вас есть несколько вариантов, если вы не хотите разбивать этот импорт SQL на более мелкие части. Кроме того, рекомендуется проверить это на тестовой машине, прежде чем делать это по-настоящему.

Вы можете использовать bzip2 -9, чтобы сжать file.sql, передать его, а затем запустить импорт с помощью этой команды, которая не требует распаковки файла:

bzcat file.sql.bz2 | mysql -u username -p database_name

Или, если вы более смелые, вы можете напрямую использовать ssh для этого с помощью этой команды:

cat file.sql | ssh -C -c blowfish username@myserver mysql -u username -p database_name

В этой команде -C включает сжатие во время передачи, а -c blowfish выбирает алгоритм шифрования, который использует меньше ЦП, чем по умолчанию.

Здравый смысл подсказывает передать сжатый файл, чтобы вы могли проверить контрольную сумму, например, с помощью MD5, а затем запустить импорт из сжатого файла.

Надеюсь это поможет.

Да, если у вас есть место на диске, перенесите сжатый файл на сервер, распакуйте его, а затем импортируйте.

Нет очевидной необходимости разрезать файл на более мелкие части. Это не похоже на то, что вы публикуете сообщения в Usenet.

Если ваше соединение медленное, вы можете использовать "rsync", который может возобновить прерванные передачи, например, rsync file.sql.gz server:/tmp/file.sql.gz