Как импортировать большую базу данных MySQL в обход ограничений phpMyAdmin

Опубликовано 10 лет назад

Недавно спрашивали, каким образом можно импортировать на сервер большую базу данных MySQL. Известно, что phpMyAdmin по-дефолту имеет ограничения на размер импортируемой БД.

Если ваш дамп не намного превышает допустимый лимит, можно его разбить на несколько частей и импортировать в несколько заходов. Это оправдано если, к примеру, лимит составляет 2 Гб, а ваша база имеет размер 5-10 Гб. Понятно, что «резать» базу весом 100 Гб на 50 частей — процесс довольно трудоемкий и затратный в плане временнЫх ресурсов.

Существует несколько вариантов решения этой задачи.

Редактируем конфиг веб-сервера

На VDS/VPS особых проблем с этим не наблюдается, достаточно лишь подкорректировать конфиг. А именно, в php.ini увеличить допустимые максимальные значения для загружаемых на сервер файлов, максимальный размер для файлов передаваемых методом POST:

post_max_size = 2000M
upload_max_filesize = 2000M

Кроме этого, если ваша БД очень большая, следует увеличить максимально допустимое время выполнения скрипта.

max_execution_time = 32000
max_input_time = 32000

И на всякий случай можно увеличить размер допустимого объема оперативной памяти:

memory_limit = 512M

После внесения изменений, обязательно перезагрузите веб-сервер.

Понятно, что этот способ не подойдет для виртуального хостинга, т.к. он не подразумевает возможности редактирования конфигов.

Sypex Dumper

Можно воспользоваться сторонним софтом. И первое приложение на которое стоит обратить внимание — это Sypex Dumper.

Впервые воспользовавшись им много лет назад и оценив все его возможности и достоинства, я могу смело повесить ему ярлык «Must Have». Sypex Dumper — серверное приложение на PHP не требующее установки. Его достаточно скопировать, к примеру, в корень вашего сайта в директорию sxd и вызвать его в браузере: http://Ваш_Сайт/sxd/. Стоит заметить, что предварительно в директорию backup следует поместить дамп вашей базы данных. После инициализации скрипта вы увидите панель авторизации для подключения к базе. Вводим свой логин и пароль. Хост и порт — опционально, только если они специфические.

Импортируем БД с помощью Spydex Dumper

После авторизации можно перейти непосредственно к иморту БД. В поле «База данных» будет выбрана БД к которой вы подключены, а в поле «Файл» вы увидите ранее загруженный вами дамп в директорию Backup.

Импортируем БД с помощью Spydex Dumper

Для большинства случаев никакие дополнительные настройки больше не нужны и можно смело запускать импорт, нажав на кнопку «Выполнить». Импорт, в зависимости от размера БД и вашей скорости соединения с Интернет может занять некоторое время. Во время импорта вы можете видеть какие именно таблицы импортируются в данный момент в базу. По завершению работы скрипта вы увидите лог выполнения. Он выглядит, примерно, так:

Импортируем БД с помощью Spydex Dumper

Вот, собственно, и все — база импортирована!

Консоль

Импорт через консоль рассматривать не будем. Я думаю, люди, пользующиеся консолью без меня знают как импортировать любую БД. А простым пользователям без специальной подготовки лучше туда не соваться. Так как  выполнение некоторых команд может привести к серьезным последствиям, вплоть до полного падения сервера.

В заключение

Я не берусь утверждать, что Sydex Dumper — это единственное и правильное решение. Существуют и другие более элегантные способы, которые требуют от пользователя определенных знаний и соответствующие доступы к настройках сервера.

Но в условиях виртуального хостинга, Sydex Dumper, безусловно, будет вашим незаменимым помощником.

Фото: Tripp — Creative Commons / flickr.com

Иван Данилин
Автор Иван Данилин

Фулстек веб‑разработчик, специализируюсь на платформе WordPress

Подробнее
Комментарии
  1. Просто спасение, а не статья! Спасибо огромное, что поделились такой утилитой. Пол дня голову ломал, почему-то не импортировалась БД.
    • Пожалуйста! Когда-то давно она меня тоже очень выручила. Рекомендую разобраться с SSH, тогда вообще отпадёт необходимость в каких-либо утилитах
  2. На VDS/VPS особых проблем с этим не наблюдается, достаточно лишь подкорректировать конфиг. А именно, в php.ini …

    и не сказать где находится этот файл? смысл в таком совете? Я понятия не имею, в какой из миллиона папок он лежит. А поиска по серверу нет, это не виндоуз…
    • Путь php.ini зависит от установленной ОС, конфига, и потом их может быть несколько. Узнать путь используемого php.ini можно с помощью ф-ии phpinfo(). Создайте php-файл, добавьте в него эту ф-ю и выполните в браузере. В Loaded Configuration File будет указан путь к конкретно вашему php.ini
Добавить комментарий