Ошибка подключения к базе данных WordPress — как исправить | Мастерская — de-bor.ru

Частный web-мастер Денис Борисов
WordPress-сайтов

Ошибка подключения к базе данных WordPress — как исправить

WordPress: ошибки и фиксы · 2026-06-01 · 6 мин чтения
Белый экран с одной строчкой «Error establishing a database connection» — и сайта нет. Ни админки, ни фронта. Ошибка значит, что WordPress не может достучаться до MySQL. Чаще всего дело в трёх вещах: кривые доступы в wp-config.php, упавший сервер БД или испорченные таблицы. За 10 минут это чинится — и почти всегда без потери данных.

Почему WordPress теряет базу данных

Ошибка возникает на этапе wp-db.php — самого первого подключения к MySQL. WordPress пробует mysqli_connect() с креденшелами из wp-config.php. Не вышло — белый экран.

Вот что ломается чаще всего, от простого к сложному.

1. Слетели логин и пароль в wp-config.php Самая частая причина. После миграции, восстановления из бэкапа или смены хостинга доступы не совпадают. Проверьте DB_NAME, DB_USER, DB_PASSWORD и DB_HOST в корневом wp-config.php.
2. Упал MySQL/MariaDB на сервере База просто не запущена. На VPS это видно через systemctl status mysql или systemctl status mariadb. На shared-хостинге — в панели управления (ISPmanager, cPanel, Beget). Иногда сервис висит в статусе «starting» после перезагрузки сервера.
3. Закончилось место на диске MySQL не может писать — отключается. Проверьте: df -h на VPS. На shared-хостингах место показывается в панели. Если занято >95% — база не стартует или работает с ошибками.
4. Повреждены таблицы базы После аварийной перезагрузки сервера или краша MySQL часть таблиц может оказаться битой. Обычно страдают wp_options и wp_posts — самые активно пишущиеся.
5. Сайт переехал, а DB_HOST остался старый Частая история при миграции с локального сервера на хостинг. На локалке DB_HOST = 'localhost', а на VPS может быть '127.0.0.1' или socket. На Beget — 'localhost', на Timeweb — тоже, на REG.RU иногда требует полный путь к сокету.
6. Исчерпан лимит одновременных подключений MySQL по умолчанию держит ~151 соединение. Если сайт под нагрузкой (DDoS, кривой плагин кэширования) — коннекты кончаются и новые запросы получают отлуп.

Как исправить: пошагово

Шаг 1. Проверяем wp-config.php

Файл лежит в корне сайта. Откройте и найдите блок:

define( 'DB_NAME', 'имя_базы' );
define( 'DB_USER', 'пользователь' );
define( 'DB_PASSWORD', 'пароль' );
define( 'DB_HOST', 'localhost' );

Сверьте с данными из панели хостинга. На Beget: «Управление базами MySQL» в ISPmanager. На Timeweb: «Базы данных» в личном кабинете. На REG.RU: раздел «MySQL» в панели хостинга.

Если недавно меняли пароль — проверьте, что в wp-config.php он новый. Старые сессии или кэш панели хостинга могут показывать устаревший пароль — создайте нового пользователя БД заново и пропишите, если сомневаетесь.

DB_HOST на разных хостингах Beget и Timeweb используют 'localhost'. REG.RU иногда требует 'localhost:/var/run/mysqld/mysqld.sock' или просто IP 127.0.0.1. Если 'localhost' не работает — попробуйте '127.0.0.1'.

Шаг 2. Проверяем — жива ли база вообще

Самый быстрый тест — PHP-скрипт на 5 строк. Создайте файл db-test.php в корне сайта:

<?php
$link = mysqli_connect('localhost', 'user', 'pass', 'dbname');
if (!$link) {
    die('MySQL error: ' . mysqli_connect_error());
}
echo 'OK — MySQL works, DB selected';

Подставьте свои доступы из wp-config.php. Откройте https://ваш-сайт/db-test.php. Если пишет «OK» — база жива, проблема в чём-то другом. Если ошибка — читайте сообщение: оно скажет конкретную причину (неверный пароль, нет такой базы, сервер не найден).

Не забудьте удалить файл после проверки — в нём пароль открытым текстом.

Шаг 3. Ремонт таблиц

Если база жива, но часть таблиц повреждена — чиним через phpMyAdmin или консоль. В phpMyAdmin: выберите базу → отметьте все таблицы → внизу выпадающий список «Восстановить таблицы».

Через консоль MySQL:

mysqlcheck -u user -p --auto-repair dbname

Если сайт на WooCommerce или busy-блоге — глючит чаще всего wp_options. Её можно починить прицельно:

mysqlcheck -u user -p --auto-repair dbname wp_options

Шаг 4. Свободное место на диске

На VPS: df -h. Ищите строчку с / или /var/lib/mysql. Если Use% под 100 — чистите логи, временные файлы, кэш.

Быстрая очистка на Ubuntu/Debian:

apt-get clean
journalctl --vacuum-size=200M
rm -rf /tmp/*.tmp

На shared-хостингах Beget и Timeweb: в панели смотрите занятое место (обычно раздел «Тарифы и услуги» или «Статистика»). Если диск забит — удалите старые бэкапы, логи или расширьте тариф.

Шаг 5. Перезапуск MySQL

Если сервис висит в статусе failed или starting:

systemctl restart mysql
# или
systemctl restart mariadb

После перезапуска проверьте статус: systemctl status mysql. Должен быть active (running). Если падает сразу — смотрите логи: tail -50 /var/log/mysql/error.log. Частая причина падения — битый ibdata1 (InnoDB) после жёсткой перезагрузки сервера.

Shared-хостинг — вы не можете перезапустить MySQL сами. Если база лежит — пишите в поддержку. Beget отвечает за 5-15 минут, Timeweb — до часа, REG.RU — иногда дольше.

Шаг 6. Если ничего не помогло — восстанавливаем из бэкапа

На Beget бэкапы лежат в ISPmanager → «Резервные копии». На Timeweb — в разделе «Бэкапы» панели. Скачайте последний дамп и залейте через phpMyAdmin или консоль:

mysql -u user -p dbname < backup.sql

Перед заливкой дампа — сохраните текущее состояние на всякий случай:

mysqldump -u user -p dbname > broken_state.sql

Как проверить, что всё сработало

Три контрольных точки 1. Главная сайта открывается без ошибок. 2. Админка (/wp-admin/) пускает. 3. Откройте пару страниц, создайте тестовую запись — всё пишется в базу и отображается.

Дополнительно проверьте логи WordPress: /wp-content/debug.log. Включите на время отладку в wp-config.php:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );

Если после починки в логах тишина — ошибка устранена.

Когда способ не сработает

  • Физически убит диск на сервере. Без MySQL-дампа в другом месте данные не вернуть. Мораль: храните бэкапы вне сервера.
  • База утеряна хостингом. На дешёвых тарифах бэкапы могут не делаться. Перед любыми правками wp-config.php делайте дамп.
  • Сайт взломан и база зашифрована. Ошибка соединения может быть следствием того, что злоумышленник дропнул таблицы или сменил префикс. Здесь поможет только восстановление из чистого бэкапа с последующей сменой всех паролей.
  • Не хватает оперативной памяти. Если на VPS 512MB RAM и MySQL падает по OOM — ошибка соединения будет возвращаться после каждого рестарта. Добавьте swap или расширьте тариф.

Частые вопросы

Может ли ошибка возникать только на некоторых страницах?
Да. Если повреждены конкретные таблицы (например wp_postmeta), главная может работать, а страницы записей — падать. Ищите ошибки в debug.log — там будет название запроса и таблицы, которая сломалась.
После переноса сайта на другой домен — ошибка подключения, хотя база та же. Что не так?
Скорее всего старый wp-config.php с неверными доступами или неправильный DB_HOST. При переносе на Beget с локалки — DB_HOST = 'localhost'. Если локально был Docker/MAMP — там мог быть нестандартный хост типа db:3306. Замените на 'localhost'.
Ошибка появилась после обновления WordPress — это связано?
Само обновление WP базу не трогает. Но если в процессе хостинг перезагрузил сервер, а MySQL не поднялся — да. Или если обновился плагин кэширования и начал долбить базу сотнями коннектов. Отключите плагины через FTP (переименуйте папку плагина) и проверьте.
Сайт на Beget — куда смотреть первым делом?
ISPmanager → «Базы данных MySQL». Проверьте, что база существует и пользователь привязан. Затем раздел «Статистика» — не закончилось ли место на диске. Beget часто блокирует запись при заполнении диска на 100%.
Можно ли чинить таблицы прямо из WordPress?
Да, добавьте в wp-config.php: define( 'WP_ALLOW_REPAIR', true );. Затем откройте /wp-admin/maint/repair.php. Выберите «Repair Database» или «Repair and Optimize». После починки — обязательно удалите строчку из wp-config.php.

База лежит, а поддержка хостинга не отвечает?

Подключусь, диагностирую причину и восстановлю сайт — обычно за час.

Написать в Написать в

Сопровождение и поддержка сайта

Сопровождение и поддержка сайта

Исправлю ошибки WordPress, восстановлю сайт.

от 5.400 ₽/мес

Подробнее
Техническая оптимизация

Техническая оптимизация

Ускорю сайт, настрою кэш, устраню узкие места.

7.200

Подробнее
Меню раздела
Теги

Разрабатываю WordPress-сайты

Лендинги, многостраничные сайты, интернет-магазины на WooCommerce — всё на WordPress с удобной панелью управления.

Сайт под ключ: регистрация домена и хостинга, установка WordPress, настройка шаблона и модулей.

Поддерживаю WordPress-сайты

Обновление плагинов и тем, резервное копирование, мониторинг работоспособности — сайт работает без сбоев.

Оперативное исправление ошибок, создание новых разделов, доработка функционала и наполнение контентом.

Продвигаю WordPress-сайты

SEO-оптимизация, настройка Яндекс Метрики и Вебмастера, подключение Google Search Console.

Оптимизация позволяет «поднять» сайт в поисковых выдачах, увеличить целевой трафик и привлечь новых клиентов.

Чистка от вирусов WordPress

Если сайт взломали, появился подозрительный код или спам-рассылка — найду и удалю вредоносный код, закрою уязвимости и настрою защиту от повторного заражения.

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

Диагностика сайта

Проверю ваш сайт по ключевым параметрам и подготовлю отчёт с рекомендациями:

  • Скорость загрузки и производительность;
  • Безопасность и уязвимости;
  • SEO-состояние и индексация;
  • Мобильная адаптация;
  • Технические ошибки и код.
Заказать диагностику
Михайлова Анастасия

Денис МАСТЕР своего дела. Вёл целый проект, работали с ним на протяжении 4х месяцев. Отзывчивый, понимающий с полуслова специалист. Стоимость услуг радует, а качество работы приводит в восторг.

Денис спасибо Вам от лица нашей строительной компании и от всего нашего персонала.

Михайлова Анастасия
Игорь Караваев

Обратился к Денису для восстановления сайта на WordPress после сбоя. Сделал, как и обещал, за сутки — сайт снова работает без ошибок. Профессионал своего дела, доходчиво объясняет, вежлив и тактичен. Однозначно рекомендую!

Игорь Караваев
Яна Веркулич

Денис, спасибо огромное за работу)) Очень тепло вспоминаю Вас и все что Вы сделали для моей работы и моего сайта.

Денис Профессионал с большой буквы, решает любые вопросы, отличный специалист))

Рекомендую к сотрудничеству, еще раз спасибо)

Яна Веркулич
Бюро Переводов

Денис оперативно и грамотно справляется со всеми поставленными задачами. Внес правки на англоязычную и русскоязычную версии сайта, учел все пожелания. Будем обращаться еще!

Бюро Переводов
Анастасия Виричева

Денис мастер своего дела, рекомендую его как специалиста.
Понимает, что нужно сделать и справляется с поставленной задачей в короткое время.

Делал сайт для салона красоты, просто и функционально.

Анастасия Виричева
Владимир

Очень много времени мучались с сайтом на OpenCart. «Специалисты» не могли нормально разобраться в проблеме, возникавшей при выполнении элементарной задачи.

Денис сделал это в два счета, также расписал подробно, в чем была проблема и как она решена. На 200% доволен. Даже не хочется его рекомендовать, потому что будет постоянно занят))

Владимир
Ксения Петровская

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

Денис всё починил, теперь у нас нормальная почта, домен работает, письма приходят и уходят. Цена как заявлена — оплатили по факту проверки. Спасибо большое!

Ксения Петровская
Александр Кривуля

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

Умение общаться доходчиво и терпеливо с клиентами — огромный плюс. Я очень доволен. Однозначно рекомендую!

Александр Кривуля
Кондитер мания

Прекрасный специалист, ответил и устранил ошибку на сайте за пару часов, сохранила контакт, будем по необходимости обращаться. Рекомендую!

Кондитер мания

Бесплатная настройка хостинга и домена

Регистрация хостинга на 1 месяц и домена .ru/.рф на 1 год входит в стоимость разработки сайта.

Подробнее

Разрабатываю сайты для клиентов по всей России:

Показать все города