Как экспортировать (скачивать) и импортировать (загружать) базы данных MySQL больших размеров?
Базы данных (или сокращено бд) на большинстве сайтов имеют размер (вес), равный нескольким десяткам Мб (мегабайт). Первоначальный размер базы данных на старте разных проектов зависит от структуры самого сайта (CMS), дальше же их вес увеличивается с каждым появлением новой записи.
В качестве записей может выступать информация о регистрации пользователей, комментарии, личные сообщения, товары, новости и прочие данные, хранящиеся в базе данных сайта.
Мне же довелось поработать с несколькими сайтами, размер баз которых превышал 500 Мб (магабайт), а на некоторых достигал даже 2 Гб (гигабайт). Поскольку стандартными методами базы данных такого объема переносятся с трудом (из-за лимитов хостинга и браузера), то я поделюсь с вами несколькими рабочими способами, которые помогут вам в решении подобных задач (перенос больших баз данных).
Экспорт (скачивание) баз данных MySQL большого размера через Sypex Dumper
Итак, начнем с вами рассмотрение решения поставленных задач с более легкого варианта, а именно – с готового решения.
«Sypex Dumper» – программный продукт, написанный на языке PHP, позволяющий работать с базами данных без использования phpMyAdmin. В преимущества «Sypex Dumper» входят:
- Мультиязычность (поддерживает множество языков).
- Есть бесплатная версия скрипта (для наших задач этого вполне хватит).
- Высокая скорость выполнения задач.
- Работа с большими базами данных.
- Удобный и понятный интерфейс.
- И множество других интересных «фишек».
Им-то мы и воспользуемся, чтобы скачать (перенести) базы данных большого объема.
Чтобы экспортировать (получить, скачать) базу данных определенного вашего сайта для дальнейшего ее использования вам нужно сделать следующее.
1. Скачайте скрипт Sypex Dumper бесплатно с нашего сайта.
2. Распакуйте архив и закачайте на сайт папку sxd удобным для вас способом.
3. Далее, перейдите по адресу http://your_site.ru/sxd/index.php (где your_site.ru – домен вашего сайта), после чего перед вами откроется форма для ввода данных. В ней вы указываете данные того пользователя, который имеет права на управление необходимой вам базой данных и жмете «Войти».
4. На открывшейся странице (при успешной авторизации), жмете 1 раз на раздел «Экспорт» в верхнем меню. Если пользователю доступны несколько баз данных – выбираете ту, которую будем экспортировать (скачивать) из выпадающего списка. Остальные настройки можно оставить без изменений и нажимаете на кнопку «Выполнить».
Хочу отметить, что экспортировать можно не всю базу, а лишь некоторые ее таблицы по необходимости.
5. После того, как процесс сохранения базы данных закончился (понять это вы можете по прогресс-бару), вы можете скачать необходимую вам базу нажатием на соответствующую кнопку.
Помимо этого, все экспортируемые базы будут храниться на вашем сайте по пути /sxd/backup/. Если сохранение базы завершается ошибкой – проверьте, что для папки backup стоят права на запись 777.
На этом экспорт (скачивание) базы данных закончен.
Импорт (загрузка) баз данных MySQL большого размера через Sypex Dumper
Выше мы разобрали с вами способ получения необходимой базы данных, теперь нужно перебросить (импортировать) ее на другой проект, и для этого делаем следующее.
1. Скачайте скрипт Sypex Dumper бесплатно с нашего сайта.
2. Распакуйте архив и закачайте на сайт папку sxd удобным для вас способом.
3. В папку /sxd/backup/ загружаете ранее полученную (скачанную) базу данных.
4. Далее перейдите по адресу http://your_site.ru/sxd/index.php (где your_site.ru – домен вашего сайта), после чего перед вами откроется форма для ввода данных. В ней вы указываете данные того пользователя, который имеет права на управление необходимой вам базой данных и жмете «Войти».
5. На открывшейся странице (при успешной авторизации) жмете 1 раз на раздел «Импорт» в верхнем меню. Если пользователю доступны несколько баз данных – выбираете ту, в которую будем импортировать (загружать) данные из выпадающего списка. Остальные настойки можно оставить без изменений и жмете на кнопку «Выполнить».
Хочу отметить, что импортировать можно не всю базу, а лишь некоторые ее таблицы по необходимости.
6. После того, как процесс импортирования (загрузки) базы данных закончился (понять это вы можете по прогресс-бару), задачу можно считать выполненной.
По завершении всех работ рекомендую полностью удалить папку sxd с вашего сайта.
Экспорт (скачивание) баз данных MySQL большого размера через SSH-терминал
SSH – сетевой протокол, который позволяет удаленно (через специальные команды) управлять системой или сервером. В Windows для работы с этим протоколом существует множество программ, популярной из которых считается «PuTTY».
На некоторых хостингах, как, например, в Beget, существует встроенный Терминал прямо в панели управления. Не будем далеко ходить и рассмотрим описанную в заголовке задачу на его примере. Стоит отметить, что описанные ниже операции можно проделать и в отдельном SSH-клиенте.
1. Запускаем Терминал. На хостинге Beget он выглядит следующим образом:
2. Если вы подключаетесь к серверу через стороннюю программу – авторизуйтесь на нем, введя соответствующие данные (получить их можете в панели управления хостингом или у вашего хостинг-провайдера).
3. Далее вводим последовательно 2 команды. Первая – это:
cd /
так мы точно переходим в корень хостинга, и вторая – это:
mysqldump -u USERNAME -p DATABASE > backup.sql
непосредственно сам экспорт, где:
USERNAME – логин пользователя, имеющего доступ к базе данных.
DATABASE – название базы данных, которую хотим экспортировать.
backup.sql – название файла, в котором будет сохранена база данных и путь относительно корневой папки. При такой конструкции база будет сохранена в корень хостинга.
4. После ввода команды вам будет предложено ввести пароль от пользователя, которого вы указали в третьем шаге. Вводите пароль и нажимаете «Enter» на клавиатуре. Обратите внимание, что ввод пароля в SSH-терминале не показывается, то есть вводите вы пароль или вставляете – на его месте всегда будет пустое место.
После того, как сервер будет вновь готов принимать команды по SSH, это будет означать, что экспорт базы закончен и вы можете скачать ее по FTP или через файловый менеджер хостинга.
Процесс экспорта (и импорта) в SSH не транслируется, и если ваша база имеет довольно большой объем, запаситесь терпением, так как ответ от сервера вы можете получить спустя больше чем 20 минут.
Импорт (загрузка) баз данных MySQL большого размера через SSH-терминал
Что из себя представляет SSH, мы уже выяснили выше, а теперь приступим к рассмотрению того, как ранее скачанную базу данных импортировать на другой проект.
1. В корень вашего хостинга загрузите ранее скачанную базу данных удобным для вас способом.
2. Подключитесь к вашему хостингу/серверу по SSH.
3. После спешной авторизации введите последовательно 2 команды. Первая – это:
cd /
так мы точно переходим в корень хостинга, и вторая – это:
ls
Таким образом, мы получаем полный список файлов и каталогов текущей директории. Смотрим, чтобы в их числе была наша ранее загруженная база данных.
4. Если все хорошо и база на месте, вводите заключительную команду:
mysql -u USERNAME -p DATABASE < backup.sql
где:
USERNAME – логин пользователя имеющего доступ к базе данных.
DATABASE – название базы данных, в которую будем импортировать данные.
backup.sql – название файла, который будет загружаться, и путь относительно корневой папки. При такой конструкции база будет импортироваться из корня хостинга.
5. После ввода команды вам будет предложено ввести пароль от пользователя, которого вы указали в четвертом шаге. Вводите пароль и нажимаете «Enter» на клавиатуре. Обратите внимание, что ввод пароля в SSH-терминале не показывается, то есть вводите вы пароль или вставляете – на его месте всегда будет пустое место.
После этого, как сервер будет вновь готов принимать команды по SSH, это будет означать, что импорт базы закончен и вы можете вести дальнейшую работу над проектом.
По завершении всех работ рекомендую удалить экспортируемую и импортируемую базу во избежание непредвиденной потери данных.