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

Небольшое предисловие. Если мне надо было импортировать базу данных MySQL (например, при переходе на https), я пользовался phpMyAdmin. Способ был безотказным до тех пор, пока не появились необходимость импортировать файл БД больших размеров. Объём файла 360 мб, в zip-архиве 45 мб. Процесс импорта через phpMyAdmin длился более часа и закончился сообщением об ошибке соединения. При повторном запуске, появилось сообщение об удачном завершении импорта, но на поверку оказалось, что база данных не обновилась. Пришлось воспользоваться вариантом импорта через терминал (иногда используется термин «через консоль»).

Разберем процесс по шагам применительно к хостингу Бегет и CMS WordPress.

Шаг 1. Как обычно, перед важными изменениями на сайте, следует сделать полный бэкап. На Бегете есть возможность создать вечный backap — одна копия всегда бесплатноBackUp — Backup по требованию. Добавляем комментарий и жмём кнопку «Создать вечный backap».

Не забываем добавлять комментарий
Не забываем добавлять комментарий со смысловой нагрузкой

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

В вечном бэкапе хранятся все файлы аккаунта
В вечном бэкапе хранятся все файлы аккаунта

Шаг 2. Загружаем архив с файлом базы данных в корневой каталог аккаунта и распаковываем его.

Распакованный файл базы данных должен находится в корневом каталоге аккаунта
Распакованный файл базы данных должен находится в корневом каталоге аккаунта

Шаг 3. Создаем доступ по FTP к корню аккаунта и включаем протокол SSH.

Справка из Википедии:

SSH (англ. Secure Shell — «безопасная оболочка») — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Схож по функциональности с протоколами Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли. SSH допускает выбор различных алгоритмов шифрования. SSH-клиенты и SSH-серверы доступны для большинства сетевых операционных систем.

SSH позволяет безопасно передавать в незащищённой среде практически любой другой сетевой протокол. Таким образом, можно не только удалённо работать на компьютере через командную оболочку, но и передавать по шифрованному каналу звуковой поток или видео.

Создаем доступ по FTP к корню аккаунта и включаем протокол SSH
Создаем доступ по FTP к корню аккаунта и включаем протокол SSH

Шаг 4. Для того чтобы подключиться к серверу, нужно знать его IP или доменное имя. Эти данные хостер высылает при регистрации, но они могут измениться, поэтому лучше перепроверить. Узнать IP можно при помощи сервиса https://2ip.ru/lookup/

Определяем IP сервера
Определяем IP сервера

Шаг 5. Теперь нужен клиент, который позволяет подключаться по протоколу SSH. Рекомендую PuTTY (Пати), скачать можно здесь.

Ранее я устанавливал бесплатную панель Vesta на VDS и использовал PyTTY без инсталляции на компьютер, т.е. просто запускал файл putty.exe. Однако в этот раз на этапе ввода пароля постоянно выскакивала фатальная ошибка Server Unexpectedly closed network connection.

Сервер разорвал соединение
Сервер разорвал соединение

В службе поддержки Бегет посоветовали увеличить в настройках PyTTY значение Seconds between keepalives до 30, но в моём случае трюк не прошёл. Я быстро смекнул, что следует попробовать установить программу на компьютер. После инсталляции, подключение прошло без проблем.

Подключение прошло успешно
Подключение прошло успешно — мы в корне аккаунта

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

Содержимое каталога выводится командой dir. Можно лишний раз убедиться, что файл с базой данных на месте
Содержимое каталога выводится командой dir. Можно лишний раз убедиться, что файл с базой данных на месте

Теперь остаётся импортировать файл в существующую БД. Данные для доступа к которой, можно взять из файла config.php — расположен в корневом каталоге конкретно взятого сайта.

mysql -u’пользователь’ имя_БД -p’пароль’ < название_архива.sql

Если после выполнения команды не появилось строки со словом ERROR (ошибка), то импорт прошел успешно. Как я успел заметить, ошибка может выскочить из-за лишнего пробела.

В конкретном случае, я импортировал данные в пустую базу данных. Зайдя в раздел Управление базами данных MySQL, можно убедиться, что размер БД увеличился с нуля до 380 Мб.

Импорт завершён успешно
Импорт завершён успешно

Замечу, что процесс прошёл очень быстро. При работе с phpMyAdmin о такой оперативности можно только мечтать.

Шаг 7. Поскольку не следует забывать о безопасности, удаляем FTP-аккаунт — создать новый можно при необходимости.

Удаляем FTP-аккаунт щелкнув по значку корзины
Удаляем FTP-аккаунт щелкнув по значку корзины

Резюме

Если предстоит импорт больших баз данных — используйте терминал. Процесс проходит быстро и без лишних ошибок.

Оставьте первый комментарий

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*