Как разбить большой файл резервной копии MySQL на несколько файлов?

У меня есть резервная копия SQL файла 250 МБ, но ограничение на новом хостинге составляет всего 100 МБ ...

Есть ли программа, которая позволяет разделить файл SQL на несколько файлов SQL?


person Brian T Hannan    schedule 01.10.2010    source источник
comment
Если вы хотите сделать это быстро и просто в Windows / Mac / Linux, используйте: SQL Dump Splitter 3 и выполните не забываем вручную добавлять / удалять скрипты транзакций.   -  person Sjoerd Linders    schedule 03.02.2021


Ответы (3)


Вы можете разделить большой файл в Eclipse. Я успешно пробовал файл размером 105 ГБ в Windows:

Просто добавьте в свой проект библиотеку MySQLDumpSplitter: http://dl.bintray.com/verace/MySQLDumpSplitter/jar/

Краткое примечание о том, как импортировать:

  • В Eclipse щелкните правой кнопкой мыши свой проект -> Импорт.
  • Выберите Файловая система, а затем Далее.
  • Просмотрите путь к файлу jar и нажмите ОК.
  • Выберите (толстый) файл MySQLDumpSplitter.jar и нажмите Готово.
  • Он будет добавлен в ваш проект и показан в папке проекта в Package Explorer в Eclipse.
  • Дважды щелкните файл jar в Eclipse (в проводнике пакетов)
  • Откроется окно Разделитель файла дампа MySQL, в котором можно указать адрес файла дампа и перейти к разделению.
person Alisa    schedule 22.06.2015

Это некрасиво (потому что он просто разбивается по размеру, а не по тому, что логически находится в файле), но вы можете использовать инструмент разделения unix для этого:

mysqldump mydb | split -b 100m mydbbackup

Обязательно проверьте страницу руководства на наличие разделения, ваша копия может принимать аргумент размера 100 м, а может и не принимать. Некоторым необходимо указать размер в байтах.

Когда вы перейдете к восстановлению из файла, вам нужно будет использовать cat, чтобы объединить их все вместе.

cat mydbbackup.1 mydbbackup.2 mydbbackup.3 | mysql
person speshak    schedule 01.10.2010
comment
Извините, я не об этом. Все, что у меня есть, - это файл размером 250 МБ, а старая база данных больше не существует на старом хосте. У нас есть новый хост, и ограничение составляет 100 МБ, поэтому мне нужно несколько файлов меньшего размера и создать их только из одного файла размером 250 МБ ... сейчас ничего не могу сделать с mysqldump ... если я не импортирую его локально, где есть без ограничений, тогда выполните mysqldump ... но cat'ing не сработает. - person Brian T Hannan; 01.10.2010
comment
@BrianTHannan Вы можете впоследствии разделить файл с помощью этой команды: split -l 5000 ./path/to/mysqldump.sql ./mysqldump/dbpart- См. [webmaster-source.com/2011/09/26/ - person Robert; 20.02.2015

Вы можете использовать mysql_export_explode https://github.com/barinascode/mysql-export-explode

<?php 
#Including the class

include 'mysql_export_explode.php';
$export = new mysql_export_explode;

$export->db = 'dataBaseName'; # -- Set your database name
$export->connect('host','user','password'); # -- Connecting to database
$export->rows = array('Id','firstName','Telephone','Address'); # -- Set which fields you want to export
$export->exportTable('myTableName',15); # -- Table name and in few fractions you want to split the table
?>

At the end of the SQL files are created in the directory where the script is executed in the following format
---------------------------------------
myTableName_0.sql
myTableName_1.sql
myTableName_2.sql
...
person Leonardo Alfonso Tapia Delgado    schedule 21.02.2016
comment
Не копируйте и не вставляйте один и тот же ответ на несколько вопросов. Каждый ответ должен быть настроен таким образом, чтобы отвечать на задаваемый вопрос без общего копирования / вставки. - person Andy♦; 21.02.2016