Таблица помечена как разбитая и должна быть исправлена


191

Я получаю эту ошибку в WordPress phpMyadmin

#145 - Table './DB_NAME/wp_posts' is marked as crashed and should be repaired 

Когда я захожу в phpMyadmin, он говорит, что wp_posts "используется"

Мой сайт в настоящее время не работает из-за этого.

Я погуглил эту проблему, но не вижу кнопки «восстановить» на phpMyadmin. Пожалуйста, дайте мне знать, как это исправить. Я не уверен, где выдать команду PHP. Пожалуйста, посоветуйте, мой уровень владения PHP очень прост.

Ответы:



183

Запустите это из командной строки вашего сервера:

 mysqlcheck --repair --all-databases

45
Чтобы избежать ошибки «доступ запрещен», возможно, вам придется добавить имя пользователя и пароль к этой команде. mysqlcheck -uroot -p --repair --all-databasesи введите пароль.
wruckie

120

У меня была та же проблема, когда на моем сервере было доступно 0

Вы можете использовать команду (должно быть достаточно места для файлов mysql)

REPAIR TABLE `<table name>`;

для ремонта отдельных столов


Полезно, у меня была эта проблема с таблицей Drupal v7.6x UC, которая внезапно начала играть; выполнил команду REPAIR TABLE, как указано выше, в консоли phpMyAdmin SQL и исправил ее. Слава Богу, для stackoverflow! Ура!
Пол Б

25

Подключитесь к вашему серверу через SSH

затем подключитесь к консоли MySQL

и

USE user_base
REPAIR TABLE TABLE;

-ИЛИ-

Если в текущей базе данных много неработающих таблиц:

mysqlcheck -uUSER -pPASSWORD  --repair --extended user_base

Если в базах данных много разбитых таблиц:

mysqlcheck -uUSER -pPASSWORD  --repair --extended -A

2
Не помещайте пароли в командную строку, они затем сохраняются в истории незащищенным способом и в определенном месте. Команды mysql позволяют передавать параметр в -pодиночку, а затем запрашивают ваш пароль.
Тьерри Дж.

7

Когда я получил эту ошибку:

# 145 - Таблица '. \ Engine \ phpbb3_posts' помечена как неисправная и должна быть исправлена

Я запустил эту команду в PhpMyAdmin, чтобы исправить это:

REPAIR TABLE phpbb3_posts;

6

Это означает, что ваша таблица MySQL повреждена, и вам нужно ее починить. использование

myisamchk -r /DB_NAME/wp_posts

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


Я просил об этом в комментарии выше, но я думаю, что он вышел, поэтому снова прошу вас об этом. «Большое спасибо, мой сайт снова подключен к сети. Однако один вопрос, поскольку база данных была повреждена, и я восстановил ее снова, следует ли мне о чем-то беспокоиться? Должен ли я расследовать, не нарушило ли это что-то еще? из всего?"
Джон Коннор

Вы не должны беспокоиться ни о чем. Как только база данных будет восстановлена, ваш сайт снова заработает. Это может быть повреждено снова в какой-то момент, это случается, просто восстановите это снова. Также регулярно делайте резервные копии, и у вас все будет хорошо
Дмитрий
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.