Как восстановить базу данных WordPress
Иногда база данных WordPress ломается. В статье рассказано, как можно починить базу данных через сервис phpMyAdmin.
Блог на Вордпресс — замечательная штука! Масса возможностей, интуитивный и понятный движок. Все ништяк! Но однажды вдруг ни с того, ни с сего вы обнаруживаете, что часть слов стала отображаться «вопросиками» или иными кракозябрами, а что-то совсем потерялось. Ну а совсем уж мрачное дело, когда посреди экрана висит что-то вроде: «Вас хакнул Вася Терминатор. Бойтесь!» или от хостера пришло письмо, что при переезде из Москвы в Америки потерялась по дороге именно ваша база данных, и ее, увы, не восстановить.
Когда я рассказывал о плагинах для ВП, то так же упоминал о плагине wp-db-backup. Если вы до сих пор его не используете, то настоятельно рекомендую поставить и активировать, а в настройках указать еженедельную отсылку базы данных на ваш е-мейл. Туда она (база) будет приходить в сжатом виде, и ее в любой момент можно будет восстановить в случае потери или иных катаклизмов.
Каким же образом можно восстановить БД? Для начала нужно зайти в свой аккаунт на хостинге и там найти раздел под названием phpMyAdmin. Возможно, система попросит вас заново ввести логин и пароль.
Заметьте! Не «Базы данных MySQL» и не «Мастер баз данных MySQL», а именно сам сервис phpMyAdmin.
Видим слева список наших баз данных. В данном примере она есть лишь одна и называется vasya103_dbe. Кликаем по имени и попадаем на страницу настроек этой базы. Видим под именем запись «Таблиц в базе данных не обнаружено». Все верно, мы эту базу только что создали для примера, потому там ничего нет. Кстати, этот вариант подходит один в один, если вы переезжаете на другой хостинг.
Вверху ищем вкладку под названием SQL:
Появится широкое окно под названием «Выполнить SQL-запрос(ы) к базе данных vasya103_dbe». Сюда мы просто напросто копируем тот текстовый файл, что плагин wp-db-backup исправно присылал к нам на мыло. Файл этот лучше распаковать и добавлять обычным текстом. Если все сделали верно, то через некоторое время появится сообщение «SQL-запрос был успешно выполнен». Обновим страницу и увидим, что наша пустая прежде база заполнилась таблицами:
Таким образом, вы просто заливаете на новый хостинг движок Вордпресс, меняете в файле config.php имя базы и имя пользователя (это понятно: новый хостинг, соответственно, новые префиксы имен), но не устанавливаете ВП заново через ссылку вида:
http://www.ваш_сайт.ru/wp-admin/install.php
а сразу начинаете пользоваться блогом как и раньше. Ибо база у вас восстановлена, а стало быть и логины/пароли тоже.
Точно так же вы можете восстановить установленную ранее базу. Однако мой вам совет: если база относительно небольшая (максимальный размер: 2,048Кб), то лучше удалите старую базу совсем и создайте новую, заменив имя и пароль. Ну, мало ли.
Почему такой размер — 2,048Кб? Дело в том, что на самом деле phpMyAdmin является удобным инструментом по управлению базами, но не слишком хорошо подходит для восстановления резервных копий. Особенно если копия довольно внушительных размеров. На такой случай лучше воспользоваться сторонними инструментами. Например, Sypex Dumper. В свое время, когда у phpMyAdmin ещё не было возможности разбивать экспортируемый файл на части, то восстановить базу более указанного размера через phpMyAdmin было практически невозможно.
Что еще можно полезного найти здесь? Например, у вас частично поломалась база, и частично блог отображается в «вопросиках», либо вообще выдается грозное сообщение, что у вас все «Ворнинг» (Warning) и т.п. Вы так же заходите в phpMyAdmin, кликаете по имени базы, и внимательно смотрите в таблицы, особенно в колонку «Размер». Если вдруг обнаружите, что в какой-либо строчке размер равен 0 (при том, что база не новая), то это явный признак, что таблица поломалась. Тогда выделим ее галочкой слева, затем внизу находим выпадающее меню «С отмеченными:» и в нем выбираем «Восстановить таблицу».
Если нулевых размеров не обнаружилось, то отмечаем все строки и проделываем с ними ту же самую операцию. Зачастую это помогает починить базу без ее переустановки.
Удачи!
UPD от 02.01.2016: При переносе БД с одного хостинга на другой в phpMyAdmin может возникнуть такая ошибка:
#1273 - Unknown collation: 'utf8mb4_unicode_ci'
Это происходит от того, что вы переносите БД, созданную в одной из последних версий движка WordPress (4.2.х), который требует наличия на хостинге MySQL не ниже 5.5.3 версии. Чтобы пофиксить это, нужно открыть скачанную базу в текстовом редакторе (только не в Блокноте!) и заменить там все строки «utf8mb4_unicode_ci» на «utf8_general_ci», а также строки «utf8mb4» на «utf8».
Скажите пожалуйста, вы могли бы дать советы как восстановить сайт, если хостинг утверждает что исчезла вся база данных и резервные копии, которые находились на хостинге, даже те, которые хостинг создавал автоматически. На хостинге бекап не из чего сделать. А вот если смотреть этот блог на вордпрессе из консоля, то весь контент на месте. Ничего никуда не исчезло.
Проблема в том, что если блог смотреть как читатель, то страницы блога не доступны. Зато доступна главная страница со всеми статьями и виджеты.
А когда я попыталась восстановить блог через консоль из резервных копий файлов, которые были у меня на компе, то система написала мне в конце что мол извините отсутствует дополнительная папка. И я не понимаю о какой папке идет речь? Написала на хостинг, а они говорят что это из-за того, что отсутствует база данных. А есть ли какие то возможности восстановить эту базу данных? Или может какие то другие действия надо делать в этом случае?
С уважением, Светлана.
Здравствуйте, Светлана! Не совсем понятно, что значит «смотреть этот блог на вордпрессе из консоля». Вы имеете в виду блог, установленный на домашнем сервере? Если так, то можно экспортировать базу со своего сервера на хостинг. Но если блог у вас и дома не работает полноценно, то увы, ничего сделать уже невозможно.
Добрый день, Игорь! Спасибо что отозвались.
Я имела в виду, что блог работает на движке Вордпресс. И когда я как автор захожу в консоль, то там доступен весь контент, который был на блоге, до того как он слег.
А проблема заключалась в том, что я не делала ранее Бекап, а только сохраняла резервные копии файлов.
А когда возникла проблема и я захотела восстановить сайт из резервных копий, то оказалось что этого не достаточно. Так как для восстановления нужна еще и база данных за ту же дату что и резервные копии файлов. А на хостинге все копии тоже куда то исчезли.
Но сейчас уже все восстановлено. Ребята из хостинга все таки как то нашли всю информацию, за что я им очень благодарна. Правда пришлось подождать и понервничать немного.
Поэтому я рекомендую всем обязательно делать систематически Бекап сайта. Тогда и восстановить его не составит труда. А я уже убедилась в том, что это может произойти в любой момент и с любым владельцем сайта по разным причинам.
Успехов Вам!
Светлана, рад, что у вас все получилось :) Бэкап – это просто обязательная штука. Я всем рекомендую ставить плагин wp-db-backup. У меня на всех сайтах на Вордпресс он установлен и автоматически раз в неделю присылает на почту сохраненную базу. Очень удобно!