Иногда таблица wp_posts ломается, и тогда ваш сайт перестает нормально работать. Почему это происходит? Выяснить причину такой поломки получается не всегда – в некоторых случаях она связана с неожиданным событием, таким как ошибка MySQL-сервера или сервера выбранного вами хостинга в процессе обновления, что приводит к появлению обрывающихся записей в базе данных.
Симптомы сломанной таблицы записей
Если вы перейдете на экран «Все записи» или «Все страницы» в панели администратора WordPress и ничего там не увидите, то вы инстинктивно должны встревожиться. Что произошло с моим контентом? Не волнуйтесь, контент на месте. Зачастую такой синдром вызван сломанной таблицей записей в базе данных. Закатывать истерику не нужно, все поправимо.
Вы можете также видеть пустые страницы или ошибки 404 для существующих страниц, где должен был находиться контент. Если у вас имеется активный BuddyPress, то вы, возможно, увидите также следующее сообщение:
“The following active BuddyPress Components do not have associated WordPress Pages: User Groups, Members, Activate, Register. Repair”
Когда таблица записей ломается, BuddyPress не может найти все эти страницы, поэтому он и выдает предупреждение, даже если вы задавали указанные страницы ранее.
Как исправить сломанную таблицу
Иногда WordPress способен справиться с данной проблемой автоматически, но в остальное время вам понадобится сделать это вручную через phpMyAdmin. Прежде, чем что-то менять, убедитесь в том, что у вас имеется резервная копия базы данных.
Если вам не нравится работать с phpMyAdmin, то в таком случае вы должны сначала попробовать рекомендуемый метод восстановления базы данных в WordPress, который применим, начиная с версии 2.9. Добавьте следующий код к своему файлу wp-config.php:
define( 'WP_ALLOW_REPAIR', true );
Это должно автоматически привести к восстановлению сломанной таблицы после того, как вы посетите страницу {$your_site}/wp-admin/maint/repair.php
Если вы привыкли работать с phpMyAdmin, то в таком случае вы можете воспользоваться альтернативным методом восстановления, который в действительности делает то же самое, что и прошлый:
Заходим в панель управления своего хостинга и запускаем phpMyAdmin. Выбираем свою базу данных и ищем таблицу wp_posts. Скорее всего, она будет отличаться по своему виду от остальных таблиц, и скорее всего у нее будет написано «in use» («в использовании).
Выбираем эту таблицу и щелкаем по «Repair Table» в выпадающем списке:
В итоге все должно исправиться автоматически. Посетите свой сайт, чтобы проверить, действительно ли ваши записи и страницы вернулись в нормальный режим. Примечание: этот метод также работает и с другими сломанными таблицами — wp_options и т.д. Это достаточно простое решение указанной проблемы.
Источник: wptavern.com
Спасибо за инструкцию для восстановления базы данных. Остаёться один вопрос: что может привести к такой ситуации и как её можно избежать?
Привести к такой ситуации могут различные сбои, избежать которых, увы, пользователи не в состоянии, поскольку эти сбои происходят на уровне сервера хостинга. Остается лишь выбирать стабильно работающие хостинги.
Дааааа… спасибо за пост)
Отличный у вас сайт. Об описанных проблемах, к счастью, пока даже не слышал. Спасибо за статью, добавил в избранное.
Здравствуйте! Накосячил в phpmyadmin на локальном сервере, не имея бэкапов. Удалял черновики и сохраненные версии и как-то сделал так, что не отображается один из постов, который есть в бд, но не виден ни на главной, ни в админке :( Как отремонтировать, не подскажете?
В phpMyAdmin в самом низу окна под списком таблиц есть раскрывающееся меню. В нем есть пункт Repair Table. Попробуйте его.
Запрос выполнен, но The storage engine for the table doesn’t support :(
Это у меня на XAMMP
В итоге, ручками перебил пост, скопировав его с БД и вставив в редактор в админке. Но загадка осталась не разгаданной
Здравствуйте. спасибо за материал, но кажется он не решает проблему с исчезнувшем полем, и восстанавливает в уже существующем у меня исчезла таблица из базы данных отвечающая за плагин экспорта и при обращении к базе в запросе возникает ошибка, из-за несуществующей таблицы op57777_0.wp_pmxe_exports, в результате ошибка 500 и белый экран. /я хотела просто создать таблицу с таким именем, но хитрость не прокатила, пхп майадмин спросил сколько столбцов делать будем, на этом энтузиам стух. Подскажите пожалуйста, что то можно сделать в моем случае?
Плагин WP All Export создает 4 таблицы:
wp_pmxe_exports
wp_pmxe_google_cats
wp_pmxe_posts
wp_pmxe_templates
И он их не удаляет после своей деинсталляции. Они так и болтаются в базе данных.
Я думаю, в вашем случае лучше переустановить плагин заново и попытаться вернуть те настройки, что были.
Дмитрий! Вы БОГ ворпресса! Очень жалею, что не нашла вас раньше и 2 месяца своей жизни потратила впустую. В результате непонятного стечения обстоятельств слетели поля из БД. Спасибо за точные названия полей, я вытащила из старой базы их и просто импортнула в существующую. Вы ОЧЕНЬ помогли. Плагин работает. Там и wp_pmxe_imports как оказалось слетел.. Но главное. что вы дали мне лопату и я закопала эту яму.
Рад был помочь :)