Вместо сайта вы видите фразу «Ошибка установки соединения с базой данных» (в оригинале Error establishing a database connection). Она означает одно: WordPress не смог подключиться к MySQL. Все материалы сайта хранятся в базе, поэтому без неё не работает ни сайт, ни админка. Причин всего несколько, и их можно проверить за четверть часа.
Как понять, где проблема
Откройте админку по адресу /wp-admin/. Здесь возможны два варианта:
- Та же ошибка, что и на сайте. WordPress вообще не может подключиться к базе: неверные данные доступа, недоступен сервер MySQL, исчерпаны лимиты.
- Сообщение о необходимости восстановить базу данных. Соединение есть, но повреждены таблицы.
От этого зависит дальнейший путь.
Шаг 1. Проверьте данные в wp-config.php
Самая частая причина — неверные параметры подключения. Откройте wp-config.php в корне сайта (через FTP или файловый менеджер) и найдите блок:
define( 'DB_NAME', 'имя_базы' );
define( 'DB_USER', 'пользователь_базы' );
define( 'DB_PASSWORD', 'пароль' );
define( 'DB_HOST', 'localhost' );
Сверьте каждое значение с тем, что указано в панели хостинга в разделе баз данных MySQL:
DB_NAME— полное имя базы. Многие хостинги добавляют к нему префикс аккаунта, и без него подключение не работает.DB_USER— пользователь, которому выданы права на эту базу. Пользователь может существовать, но не быть привязанным к нужной базе.DB_PASSWORD— если пароль меняли в панели, обновите его и вwp-config.php. Следите за пробелами и спецсимволами в начале и в конце значения.DB_HOST— чаще всегоlocalhost, но у некоторых хостингов это отдельный адрес сервера баз данных. Точное значение указано в панели или в справке хостинга.
Ещё одно место, где бывают сбои, — префикс таблиц:
$table_prefix = 'wp_';
Он должен совпадать с реальным префиксом таблиц в базе. Это касается ситуации, когда соединение есть, но WordPress не находит свои таблицы и предлагает начать установку заново.
Проверка подключения отдельным скриптом
Чтобы исключить ошибки в самом WordPress, создайте временный файл db-test.php в корне сайта:
<?php
$link = mysqli_connect( 'localhost', 'пользователь_базы', 'пароль', 'имя_базы' );
if ( ! $link ) {
echo 'Ошибка: ' . mysqli_connect_error();
} else {
echo 'Подключение успешно';
mysqli_close( $link );
}
Откройте его в браузере. Текст ошибки подскажет причину: неверный пароль (Access denied), неизвестная база (Unknown database) или недоступный сервер. Сразу после проверки удалите файл: в нём лежит пароль от базы.
Шаг 2. Убедитесь, что MySQL работает
Если данные верны, а соединения нет, возможно, сервер баз данных недоступен. Признаки: ошибка появилась внезапно, без ваших действий, на других сайтах того же хостинга тоже сбои.
- Откройте phpMyAdmin из панели хостинга. Если он тоже не открывается или выдаёт ошибку подключения, проблема на стороне сервера.
- Посмотрите статус сервера и новости на сайте или в панели хостинга: бывают технические работы.
- Обратитесь в поддержку хостинга и приложите текст ошибки. На VPS проверьте службу командой
systemctl status mysql(илиmariadb, в зависимости от установки) и перезапустите её при необходимости.
Шаг 3. Восстановите повреждённые таблицы
Таблицы могут повредиться при сбое сервера, нехватке места на диске или оборванной записи. Тогда в админке появляется сообщение о необходимости восстановления. Встроенный инструмент WordPress включается в wp-config.php:
define( 'WP_ALLOW_REPAIR', true );
Добавьте эту строку перед /* That's all, stop editing! */, а затем откройте в браузере:
https://example.ru/wp-admin/maint/repair.php
Нажмите «Восстановить базу данных» (или «Восстановить и оптимизировать»). Дождитесь отчёта.
Важно: после восстановления обязательно удалите строку WP_ALLOW_REPAIR из wp-config.php. Пока она есть, страница repair.php доступна любому посетителю без авторизации.
Альтернативы:
- в phpMyAdmin отметьте таблицы и в списке действий выберите «Исправить таблицу»;
- в WP-CLI выполните команды:
wp db check
wp db repair
Перед любыми операциями с базой делайте копию. Если базу не получается восстановить, ищите последний бэкап в панели хостинга или в плагинах резервного копирования.
Шаг 4. Лимиты и нагрузка
На бюджетных тарифах хостинга действуют ограничения на число одновременных подключений к MySQL и на нагрузку. При всплеске трафика, из-за сканирующих ботов или тяжёлого плагина новые подключения отклоняются, и сайт то работает, то показывает ошибку.
Что проверить:
- в панели хостинга посмотрите графики нагрузки и сообщения о превышении лимитов;
- в журнале доступа найдите всплески запросов, особенно к
wp-login.phpиxmlrpc.php; - отключите тяжёлые плагины (генераторы отчётов, статистика, связанные записи) и включите кэширование страниц;
- если лимит упирается в тариф, перейдите на более мощный план или VPS.
Если база занимает весь выделенный объём на диске, MySQL не сможет писать данные. Очистите ревизии записей, спам-комментарии и устаревшие данные плагинов или увеличьте квоту.
Ошибка после переноса сайта
После переезда на другой хостинг или домен ошибка подключения возникает почти всегда из-за разницы в данных доступа. Проверьте по списку:
- База данных создана на новом хостинге, дамп из старой базы импортирован без ошибок.
- В
wp-config.phpпрописаны новыеDB_NAME,DB_USER,DB_PASSWORDиDB_HOST, а не данные со старого хостинга. - Пользователю базы выданы все права на эту базу.
- Префикс
$table_prefixсовпадает с префиксом таблиц в импортированном дампе. - Размер дампа не обрезан: при импорте через phpMyAdmin большие файлы иногда обрываются, тогда стоит импортировать частями или по SSH.
Если сайт переехал на новый домен, после восстановления подключения необходимо обновить адреса в базе. Для этого подойдёт WP-CLI:
wp search-replace 'https://old.example.ru' 'https://new.example.ru' --skip-columns=guid
Команда корректно обрабатывает сериализованные данные, в отличие от обычной замены в SQL-дампе. Перед запуском сделайте копию базы.
Что сделать после исправления
- Удалите временные файлы (
db-test.php) и строкуWP_ALLOW_REPAIR. - Включите регулярные резервные копии базы и файлов.
- Смените пароль пользователя базы данных, если он мог попасть к посторонним.
Если не получилось
Если ошибка не уходит, а проблема может быть на стороне сервера или в повреждённых данных, сайт лучше передать специалисту. Мы проверим подключение, восстановим базу из копии или починим таблицы в рамках технической поддержки WordPress. Не вносите в базу необратимых изменений без резервной копии.