Пошкодження таблиць MySQL у WordPress може проявлятися по-різному: від окремих помилок у панелі керування до повної недоступності сайту. Причиною іноді стає аварійне завершення роботи сервера, збій диска, некоректне оновлення WordPress або плагіна, перевищення ліміту пам’яті, проблеми з хостингом чи втручання шкідливого коду.
Ремонт бази даних не варто починати навмання. Навіть стандартна команда оптимізації або відновлення може змінити структуру таблиць, а в окремих випадках призвести до втрати частини даних. Перед будь-якими діями бажано створити копію бази та файлів сайту або звернутися до фахівця, якщо сайт містить важливі замовлення, облікові записи чи іншу критичну інформацію.
Ознаки пошкодженої таблиці
Найочевидніший симптом — повідомлення WordPress на кшталт «Одна або кілька таблиць бази даних недоступні» або помилка підключення до бази даних. Проте не кожна така помилка означає саме пошкодження таблиць. Спочатку потрібно відрізнити проблему з даними від проблеми з доступом до MySQL.
- Сайт показує повідомлення
Error establishing a database connection. - Панель WordPress не відкривається, хоча сервер і файли сайту доступні.
- Окремі сторінки повертають помилки 500 або відображаються без контенту.
- У записах, товарах, коментарях чи користувачах зникають дані або виникають помилки читання.
- У панелі керування з’являється повідомлення про необхідність ремонту бази.
- У журналі MySQL або PHP фіксуються помилки типу
Table is marked as crashed,InnoDB: corruptionчиMySQL server has gone away.
Важливо перевірити конфігурацію WordPress у файлі wp-config.php: назву бази, ім’я користувача, пароль і адресу сервера. Неправильні реквізити, зміна хоста бази або заблокований користувач можуть давати симптоми, схожі на пошкодження таблиць.
Також варто перевірити, чи не закінчилося місце на диску, чи працює служба MySQL і чи доступна база через панель хостингу або phpMyAdmin. Якщо помилки з’явилися після злому, потрібно додатково перевірити файли WordPress і журнали доступу: пошкодження бази може бути лише одним із наслідків атаки.
Резервна копія перед ремонтом
Перед перевіркою та ремонтом потрібно зберегти поточний стан сайту. Навіть якщо база вже працює нестабільно, її копія може містити дані, яких не буде в автоматичній резервній версії хостингу.
- Увімкніть режим обслуговування або тимчасово обмежте доступ до сайту, щоб під час діагностики не створювалися нові записи.
- Зробіть дамп бази даних через панель хостингу, phpMyAdmin або командний рядок.
- Окремо скопіюйте файли сайту, зокрема каталог
wp-contentі файлwp-config.php. - Збережіть копію в іншому місці, а не лише на тому самому сервері.
- Перевірте, чи архів відкривається, а SQL-файл має ненульовий розмір і містить таблиці WordPress.
Якщо експорт бази завершується помилкою, не слід багаторазово запускати різні команди без розуміння їхньої дії. Спочатку потрібно визначити таблицю, на якій зупиняється експорт, і з’ясувати, чи можна отримати дані частинами. За наявності резервної копії варто працювати з її копією, а не з оригіналом.
Для складніших випадків корисно звернутися за допомогою у Відновлення бази даних сайту після пошкодження, особливо якщо йдеться про інтернет-магазин або сайт із постійними замовленнями.
Інструменти перевірки MySQL
Для первинної діагностики можна використати phpMyAdmin. У розділі бази даних потрібно переглянути список таблиць, їхній тип, розмір і статус. Таблиці з позначкою crashed, помилками читання або незвичною поведінкою потребують окремої перевірки.
Функція «Перевірити таблицю» допомагає знайти очевидні помилки структури. Команди CHECK TABLE та REPAIR TABLE можуть бути корисними для таблиць типу MyISAM, але вони не є універсальним рішенням. Для InnoDB стандартний ремонт через REPAIR TABLE зазвичай не застосовується, а спроби примусового відновлення можуть погіршити ситуацію.
Якщо є доступ до командного рядка, фахівець може використати клієнт MySQL для перевірки структури та прав доступу. Додатково аналізуються:
- журнали MySQL, PHP і вебсервера;
- помилки дискової підсистеми та нестачу вільного місця;
- версія MySQL або MariaDB та сумісність із сайтом;
- кодування таблиць і порівняння полів;
- наявність таблиць, які очікує поточна версія WordPress;
- час появи помилки та дії, після яких вона виникла.
Не варто видаляти таблицю, перейменовувати її або змінювати тип двигуна без копії та плану відкату. Назви таблиць із префіксом, відмінним від стандартного wp_, також не свідчать про проблему: це може бути штатна налаштування сайту.
Ремонт і оптимізація
Метод ремонту залежить від типу пошкодження. Для MyISAM інколи достатньо штатної перевірки та ремонту таблиці. Однак навіть у цьому випадку потрібно попередньо зберегти резервну копію і переконатися, що сервер має достатньо ресурсів.
Для InnoDB частіше застосовують відновлення з резервної копії, експорт доступних даних із подальшим імпортом або спеціальні процедури аварійного запуску. Такі дії потребують обережності, оскільки неправильне значення параметрів відновлення може ускладнити подальшу роботу бази.
Після стабілізації бази можна виконати оптимізацію: перевірити індекси, прибрати пошкоджені або непотрібні тимчасові таблиці, проаналізувати великі таблиці метаданих і очистити безпечні типи сміття WordPress. Не слід видаляти записи без розуміння їхнього призначення. Дані про замовлення, користувачів, налаштування плагінів і зв’язки між таблицями можуть бути критично важливими.
Якщо проблема виникла після оновлення, потрібно перевірити сумісність версій PHP, WordPress, теми та плагінів. Оновлення краще виконувати поетапно на копії сайту. Якщо є ознаки вірусу, спочатку ізолюють заражені файли та змінюють доступи, а вже потім проводять ремонт бази. Відновлення лише таблиць не усуває шкідливий код у файлах.
Контроль цілісності даних
Успішне виконання SQL-команди ще не означає, що сайт повністю відновлено. Після ремонту потрібно перевірити не тільки доступність головної сторінки, а й логіку роботи WordPress.
- Відкрийте головну сторінку, кілька записів, сторінок і категорій.
- Перевірте вхід до панелі адміністратора та створення тестового запису.
- Переконайтеся, що працюють пошук, форми, коментарі та завантаження медіафайлів.
- Для магазину перевірте картки товарів, кошик, оформлення замовлення та історію покупок.
- Перегляньте журнали помилок після запуску сайту.
- Перевірте кодування, посилання, кількість користувачів і ключові записи в базі.
Після перевірки створіть нову резервну копію вже відновленого стану та налаштуйте регулярне автоматичне копіювання. Резервні копії мають зберігатися окремо від сайту, а періодично їх потрібно тестово відновлювати.
Спеціаліст потрібен, якщо база не експортується, пошкоджені таблиці InnoDB, немає актуальної резервної копії, сайт містить фінансові дані або помилки повторюються після ремонту. У такій ситуації безпечна діагностика, копіювання доступних даних і контрольований план відновлення зазвичай важливіші за швидке виконання окремої команди.