У меня база данных побольше (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