База данных WordPress: как сделать резервное копирование (бэкап) БД. Перенос форума SMF на новый хостинг

Если вы храните данные в БД MySQL и вам важно не потерять их, то вам нужно регулярно делать бэкапы. Эта статья научит вас быстро через консоль делать бэкапы и восстанавливать их в БД MySQL. Также вы сможете перенести данные на другой сервер.

Как сделать бэкап через командную строку (используя mysqldump)

Если у вас есть доступ к серверу через консоль (SSH) вы можете быстро делать бэкапы и разварачивать их обратно. Эта позволяет быстро создавать дамп базы данных (дамп - это текстовый вариант БД) и восстанавливать их обратно, быстрее чем через phpmyadmin, adminer и прочее. Дамп базы будет состоять из SQL-команд для создания копии вашей БД. Вот команда создания дампа:

$ mysqldump --opt -u -p >

- Имя пользователя БД (возможно root)
- пароль к вашему пользователю, можно писать слитно если он без каких-то особых знаков и пробелов, например -proot, -ppassword
- имя вашей БД
- имя файлу куда будет сохранен бэкап
[--opt] - опции к команде mysqldump, можно пропустить и не писать

Допустим у вас есть база данных Drupal, а имя пользователя root с паролем password и имя файла будет backup.sql, тогда команда будет такая:

$ mysqldump -u root -ppassword DrupalDB > backup.sql

Можно опустить пароль или пароль содержит пробелы и другие особые знаки (#!,-_), то тогда вам придется вводить пароль отдельно и команда будет такая:

$ mysqldump -u root -p DrupalDB > backup.sql

Вы можете также бэкапить отдельные таблицы, для этого нужно перечислять таблицы через пробел, например nodes users:

$ mysqldump -u root -p DrupalDB nodes users > backup.sql

Помимо того чтобы бэкапить отдельные таблицы, можно бэкапить сразу несколько БД, для этого нужно указать параметр --databases это позволит через пробел указать нужные БД:

$ mysqldump -u root -p --databases DrupalDB Drupal7 Drupal8 > backup.sql

Если вы хотите перенести сервер MySQL полностью, то вы можете скопировать все данные с помощью параметра --all-databases:

$ mysqldump -u root -p --all-databases > alldb_backup.sql

Команда mysqldump имеет также несколько полезных параметров:

--add-drop-table - позволяет удалять таблицы перед разварачиваем этого бекапа (то есть в дамп будет добавлены SQL-запросы DROP TABLE перед CREATE TABLE той же таблицы).

--no-data - позволяет копировать только структуру БД без данных, например полезно когда вы копируете таблицы кеша, которые в друпале могут быть с сотнями тысяч ненужных нам записей.

--add-lock - позволяет добавить LOCK TABLES и UNLOCK TABLES. Если размер БД большой то таблицы могут быть залочены на продолжительное время.

Как сделать бэкап MySQL БД со сжатием

Пожалуй наиболее подходящий варинт, потому что сжать удается в 10-20 раз и бэкапы из больших баз данных становится вполне небольших размеров. Для сжатия мы будем пользоваться командой gzip:

$ mysqldump -u root -p DrupalDB | gzip -9 > backup.sql.gz

Если вы хотите разархивировать файл (не восстановить БД, а просто разархивировать), то воспользуйтесь этой командой:

$ gunzip backup.sql.gz

Как восстановить БД MySQL из бэкапа

Для восстановления БД из дампа, вам нужна чистая БД, можете удалить таблицы с помощью adminer"а или phpmyadmin"а. Если вы использовали параметр --add-drop-table, то таблицы сами удаляться и зальются и ничего удалять прежде не нужно. Вот команда чтобы восстановить БД из дампа:

$ mysql -u root -p DrupalDB < backup.sql

Если у вас был сжатый бэкап, то воспользуйтесь этой командой:

Gunzip < backup.sql.gz | mysql -u root -p DrupalDB

Бэкап и восстановление через Adminer (замена PhpMyAdmin)

Adminer - это замена PhpMyAdmin. Он такой же по функционалу, только сделан в виде одного небольшого файла, что весьма удобно:

Просто копируем файл в корень нашего сайта и обращаемся к нему через браузер:

http://имя_вашего_сайта/adminer-4.2.1.php (можете переименовать в adminer.php для удобства):

Теперь нажимаем Экспорт (Dump) и выгружаем данные. Причем мы можем не выгружать ненужные нам данные кэша:

Для загрузки дампа обратно используйте вкладку Импорт (Import):

MySQL является довольно популярной системой управления базами данных (СУБД ), однако далеко не единственной. Большинство сайтов в интернете «крутятся» именно на СУБД MySQL. И сегодня мы будем рассматривать случай резервного копирования (он же дамп , он же бэкап ) базы данных сайта на CMS WordPress.

    Полезная статья:

Естественно, здесь абсолютно не важно на какой CMS или скрипте основан ваш сайт: Joomla, Drupal или даже Битрикс. Если у вас система управления базой данных MySQL, то данное руководство можно смело добавлять себе в избранное:)

Итак, есть два пути сделать дамп базы данных:

  1. Через консоль
  2. Через phpmyadmin

Для тех, кто не в курсе: PhpMyadmin – свободное программное обеспечение, установленное на подавляющем количестве хостингов, работающее с СУБД MySQL. C помощью phpmyadmin управляют базой данных, например, на локальном веб-сервере .

Бэкап базы данных через консоль

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

Подключаемся к удаленному серверу по протоколу ssh, например, с помощью программы putty, введя свои логин и пароль пользователя.

Вводим команду:

mysqldump -u %имя пользователя% -p %имя базы данных% > %имя дамп-файла%.sql

  • %имя пользователя % — имя пользователя сервера базы данных, которое дал вам хостер
  • %имя базы данных % — имя базы данных, чаще всего совпадает с %имя пользователя%
  • %имя дамп-файла %.sql — любое имя файла резервной копии.

Найти данный бэкап можно в той директории, откуда осуществился вызов команды mysqldump. Посмотреть из консоли в какой директории вы сейчас находитесь можно командой:

Выгрузить все базы данных:

mysqldump -u %имя пользователя% -p --all-databases > %имя дамп-файла%.sql

Восстановление базы данных через консоль

Для восстановления базы данных из файла применяем следующую команду:

mysql -u %имя пользователя% -p -D %имя базы данных% < %имя дамп-файла%.sql

  • %имя пользователя % — имя пользователя сервера базы данных
  • %имя базы данных % — имя базы данных, в которую будет восстанавливаться база данных
  • %имя дамп-файла %.sql — полный путь к файлу резервной копии.

Бэкап базы данных через PhpMyAdmin

Собственно, дамп базы данных с помощью phpmyadmin делается в пару кликов.
Выбираем в левом меню свою базу данных, которую хотим сохранить. Заходим через меню на вкладку «Экспорт»:

PhpMyAdmin — вкладка Экспорт

Жмем на кнопку «Ok». Можно настроить дополнительные параметры, выбрав в разделе Способ экспорта «Обычный».

Команда сделает тоже самое что и mysqldump – сохранит БД в файл с расширением.sql.

Восстановление базы данных через PhpMyAdmin

Все тоже самое: выбираете в левом меню базу данных, в которую хотите восстановить резервную копию. Далее переходите на вкладку «Импорт» и выбираете свой дамп-файл.

Ответственное отношение к резервному копированию – признак опытного администратора. Каждый владелец сайта на WordPress рано или поздно сталкивается с ситуацией, когда после установки нового расширения или внесения изменений в конфигурацию работа сайта нарушается вплоть до невозможности войти в админ-панель WordPress. Имея в распоряжении свежий бэкап сайта, можно оперативно восстановить его работу встроенными средствами ISPmanager, независимо от масштаба сбоя.

Полный бэкап WordPress

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

Проблемы, которые помогает решить регулярное резервное копирование:

1. Беспокойство и стресс. При активной работе с сайтом регулярно возникают мелкие и крупные неполадки, большинство из которых удается быстро устранить без применения резервной копии. Однако само её наличие позволяет заниматься восстановлением спокойно и «без нервов».

2. Потеря времени. Восстановление сайта после сбоя – непростая задача, требующая значительных трудозатрат. Свежий бэкап сайта позволяет решить проблему в считанные минуты.

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

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

Существует масса факторов, способных привести к сбою сервера и потере информации, поэтому своевременное резервное копирование – необходимость в современных реалиях. Каждый опытный администратор знает, что всего предусмотреть невозможно, но свежий бэкап сайта позволяет решить большинство проблем, связанных со сбоями. Предлагаем вашему вниманию два способа создания полноценной резервной копии.

Способ №1 – Полный бэкап WordPress через панель управления

Для начала разберемся, как сделать бэкап непосредственно из панели управления хостингом, в нашем случае это ISPmanager. Данная панель позволяет настроить создание резервных копий и загрузку их на удаленное хранилище в автоматическом режиме. Мы рекомендуем вам настраивать ISPmanager на ежедневное резервное копирование WordPress-сайта, так потери при любом сбое будут минимальны. При выборе хостинга также лучше выбирать провайдеров, предоставляющих резервное хранилище и позволяющих выполнять автоматическое резервное копирование ежедневно.

Итак, чтобы настроить бэкап сайта в панели ISPmanager (она используется ), необходимо войти в свою учетную запись.

Появится форма для настроек, в которую следует внести данные хранилища, информацию для аутентификации, формат хранения архивов и некоторые другие данные. Здесь же указывается необходимая периодичность резервного копирования, время и ограничения. После нажатия кнопки «Ok» появится новое окно ISPmanager, в котором необходимо отметить, какую информацию следует добавлять в архив.

Для полного сайта на WordPress достаточно сохранять все файлы и связанные с ним базы данных.

Способ №2 – Полный бэкап WordPress через FTP и phpMyAdmin

Этот способ более низкоуровневый, чем автоматическое резервное копирование в ISPmanager, но он достаточно простой. Вооружившись данным руководством, вы без труда разберетесь, как быстро сделать бэкап сайта на WordPress. FTP мы будем использовать для скачивания с сервера файлов, а phpMyAdmin – для создания дампа базы данных MySQL. Рекомендуем вам создать на своем рабочем компьютере отдельную папку для хранения резервных копий, чтобы при необходимости экстренного восстановления быстро найти нужный бэкап.

Для начала скопируем каталог WordPress. Бэкап сайта должен включать все находящиеся в нем файлы. Если вы создавали сайт в полуавтоматическом режиме через ISPmanager или по какому-нибудь руководству, все файлы WordPress скорее всего находятся в папке public_html или папке, название которой соответствует домену.

В качестве FTP-клиента мы рекомендуем вам использовать FileZilla, который позволяет произвести скачивание файлов, даже не имея ssh-доступа к серверу. Достаточно ввести имя пользователя и пароль, после чего открыть в левой панели целевой каталог на локальном компьютере, а в правой – каталог WordPress на удаленном сервере. Теперь выбираем его содержимое и нажимаем правой кнопкой мыши, в появившемся меню нажимаем «Скачать». Теперь разберемся, как сделать бэкап базы данных.

Заходим в phpMyAdmin через панель ISPmanager в разделе «Базы данных». Если у вас несколько сайтов, убедитесь, что вы выбрали правильную базу MySQL.

Если сомневаетесь, узнать точное имя базы можно в конфигурационном файле wp-config.php, находящемся в корневом каталоге WordPress. Откройте этот файл в любом текстовом редакторе и найдите такую строку:

define(‘DB_NAME’, *****)

Вместо звездочек будет указано название базы данных WordPress. Здесь же можно найти логин (DB_USER), пароль для доступа (DB_PASSWORD) и хост для подключения (DB_HOST). Этой информации будет достаточно для получения прав, необходимых при создании полной копии базы данных.

Убедившись, что база выбрана правильно, и имеются необходимые полномочия для подключения к ней, можно приступить непосредственно к резервному копированию.

В окне phpMyAdmin Открываем базу данных и отмечаем все таблицы (выбрав пункт «Отметить все» в нижней части экрана). Далее в верхней части переходим на вкладку «Экспорт».

Настройки менять не требуется. Убедитесь, что выбран формат SQL, и нажмите «Вперед».

Выберите на локальном компьютере целевую папку, в которую будет скачан дамп базы данных. Как правило, это относительно небольшой файл, занимающий несколько мегабайт.

Разобравшись, как сделать полный бэкап WordPress-сайта, вы можете быть уверены, что в любой момент сможете вернуть проект в рабочее состояние. Главное – всегда храните резервную копию каталога и базы данных в надежном месте. Для восстановления достаточно закачать файлы обратно при помощи FileZilla и загрузить базу данных из дампа при помощи phpMyAdmin. Чтобы всем этим не заниматься, для вас есть

От автора: что-то сегодня настроение какое-то лирически-меланхолическое. Наверное, на прошлогодний осенний лист я наступил, и от этого поплыл.… Так, лирику в сторону! Сегодня мы научимся, как сделать бэкап базы данных MySQL. Но все-таки жаль, что нельзя сделать «бэкап» времени!

Бэкапим легонько

Не будем сразу кидаться «в кусты с крапивой», и рассмотрим тему резервных копий с легких методов. Как всегда, начнем с нашей любимой графической оболочки phpMyAdmin. Рассмотрим, какими средствами создания в MySQL бэкапа базы обладает эта программа.

Заходим на сервер СУБД под учетной записью администратора. Затем слева выбираем базу, на которой будет тренироваться. Переходим на вкладку «Экспорт», и в разделе «Способ экспорта» отмечаем второй вариант («Обычный»).

После этого для редактирования станут доступны все возможные параметры бэкапа MySQL. Ниже в окне можно отметить конкретные таблицы базы, и создать только их копии. В поле «Вывод» активируйте вариант «Вывод в файл», и нажмите внизу «Ок». Копия базы данных сохранится в папке загрузки браузера.

Если честно, «господа-профессионалы программных наук», phpMyAdmin мне (как и вам) уже наскучил. Конечно, это «знатная» программная оболочка, обладающая «выдающимися» способностями в сфере администрирования СУБД. Но уже приелась!

Раз пошли такие «пляски», предлагаю испробовать что-то новенькое, и в качестве эксперимента для бэкапа базы данных MySQL использовать другую оболочку. Например, MySQL Admin.

Программная оболочка от авторов СУБД

Странно, но создатели столь популярной системы управления базами долгое время не пытались разработать для нее собственной графической оболочки. Но несколько лет назад появилась MySQL Admin. Хотя в данный момент поддержка программы ее создателями прекращена, но все-таки она обладает хорошим функционалом для бэкапа таблиц данных MySQL.
Чаще всего MySQL Admin используется как альтернатива phpMyAdmin, если размер резервируемой базы превышает 2 Мб. Это максимальный размер бэкапа, который поддерживается phpMyAdmin.

Скачиваем MySQL Admin, устанавливаем ее в файловую систему своего компьютера. Затем запускаем программу, и заполняем все поля параметров, которые нужны для подключения к серверу БД: название соединения, пароль, пользователя, хост и порт. Обратите внимание на последние два параметра. Их значение может отличаться для вашего ПК в зависимости от типа подключения (удаленно или локально) и используемой сборки.

Теперь переходим непосредственно бэкапу БД MySQL. В меню слева выбираем пункт «Backup».

Внизу нажимаем «New Project», в разделе «Schemata» выделяем нужную БД. Затем кнопкой с указателем направления перемещаем выделенный элемент в «Backup Content». Еще раз жмем на название базы, выделяем нужные таблицы и затем переходим по ссылке «Execute Backup Now».

Для окончания процесса бэкапа таблиц MySQL в появившемся диалоге проводника задаем имя файла резервной копии и папку для его сохранения.

Копия базы данной сохранена в указанной папке. Загляните в нее, и убедитесь в этом самостоятельно. Доверяй, но наличие бэкапа базы проверяй! Извините, последствие «наступа» на осенний лист

Использования MySQLDump

В набор встроенных средств СУБД входит MySQLDump, которая пригодится, чтобы сделать бэкап базы MySQL, когда «под рукой» нет специализированного ПО. Данная утилита не имеет собственного интерфейса, поэтому вся работа с ней происходит через командную строку. Запускаем cmd и переходим на тот диск и директорию, где хранится исполняемый файл утилиты:

Давайте немного поэкспериментируем с утилитой MySQLDump. Например, с помощью MySQL сделаем бэкап базы world и разместим его на рабочем столе. Код запроса:

mysqldump -uroot wordpress>C:\Users\домашний\Desktop\dump\world_copy.sql

mysqldump - uroot wordpress > C : \ Users \ домашний\ Desktop \ dump \ world_copy . sql

Теперь заглянем на свой рабочий стол (в указанную папку), проверим ее содержимое.

Утилита справилась с возложенной на нее миссией, и создала дубликат заданной базы в указанном нами месте файловой системы ПК.

Многим покажется, что я привожу слишком простые примеры реализации, Конечно, можно рассмотреть бэкап MySQL rsync, но соваться без подготовки в «неизвестные дебри» новичкам не стоит. Как-нибудь в другой раз, когда мы все окрепнем в своих

Создание резервных копий средствами PHP

С самого первого знакомства с языком PHP он показался мне очень сложным, и даже неприветливым. Но затем, освоив правила синтаксиса, все стало на свои места. И теперь я и PHP стараемся дружить. Опять с меня лирика «прет»! Пардон, друзья.

Сейчас рассмотрим простейший пример бэкапа MySQL в PHP. Для этого мы будет использовать не совсем «средства языка». Из файла PHP мы запустим уже хорошо нам знакомую утилиту MySQLDump и передадим ей все нужные параметры для создания копии указанной базы.

Код примера занимает всего несколько строк, и все благодаря PHP-функции system(), которая запускает на выполнению внешнюю (системную) программу, переданную ей в качестве основного параметра. Ее синтаксис:

string system (string $commandа [, int &$return_variable ])

string system (string $ command а[ , int & $ return _ variable] )

В общем, это полезная функция, которая нам пригодиться для создания MySQL бэкапа в Cети. Пример кода:

C:/Users/домашний/Desktop/dump/world_copy.sql"; system($commanda); ?>

$commanda = "mysqldump -uroot wordpress>C:/Users/домашний/Desktop/dump/world_copy.sql" ;

system ($commanda ) ;

До боли знакомый код! И результат тоже почти идентичен предыдущему. Но ведь это PHP, и его возможности почти безграничны. Давайте немного «подшаманим» пример, и сделаем так, чтобы код бэкапа MySQL скрипта создавал копию БД, имя которой включает в себя дату ее «сотворения».

Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: