Создаем цифровые решения, которые работают на бизнес
Сообщение Error establishing a database connection означает, что WordPress не смог установить или сохранить необходимое соединение с MySQL либо MariaDB. Браузер не показывает точную причину: одинаковый экран появляется из-за неверного пароля, недоступного сервера, ошибочного DB_HOST, отсутствующих прав, исчерпанных лимитов или поврежденных таблиц.
Главный риск — действовать наугад. Замена файлов WordPress, переустановка плагинов или импорт старой базы редко являются правильным первым шагом. На сайте с формами или WooCommerce неконтролируемое восстановление способно удалить заявки и заказы, созданные после резервной копии.
Если сайт приносит продажи, а надежной копии и доступа к журналам нет, используйте техническую поддержку сайта. Для самостоятельной диагностики следуйте последовательности ниже и записывайте каждое изменение.
Контент WordPress хранится не только в файлах. Страницы, записи, пользователи, настройки, товары, заказы и данные плагинов находятся в базе. WordPress читает четыре основных параметра из wp-config.php:
define( 'DB_NAME', 'database_name' );
define( 'DB_USER', 'database_user' );
define( 'DB_PASSWORD', 'database_password' );
define( 'DB_HOST', 'localhost' );
Затем PHP обращается к указанному серверу. MySQL проверяет пользователя, пароль, разрешенный источник и права, после чего принимает запросы к таблицам. Сбой на любом этапе может вызвать одно общее сообщение.
Не вставляйте реальные пароли в скриншоты, чаты или заявки. Если секрет уже опубликован, смените его и сразу обновите конфигурацию.
| Симптом | Вероятный уровень | Первая проверка |
|---|---|---|
| Постоянная ошибка после переноса | конфигурация | DB_NAME, DB_USER, DB_PASSWORD, DB_HOST |
| Ошибка после смены пароля | учетные данные | пароль пользователя базы и wp-config.php |
| Сайт периодически работает | ресурсы или доступность | логи, connections, CPU, RAM, диск |
| Не работают все сайты аккаунта | сервер базы | статус службы и ответ хостинга |
| Не работает один сайт | конкретная база или пользователь | права, имя базы, состояние таблиц |
/wp-admin/ показывает другой текст |
таблицы или обновление | точное сообщение и статус таблиц |
В журнале Access denied |
аутентификация или права | пользователь, пароль, host и grants |
MySQL server has gone away |
разрыв соединения | timeout, пакет, долгий запрос, перезапуск |
HTTP-ответ проблемного URL можно проверить через инструменты BB STUDIO. Это помогает отличить сбой приложения от закешированной страницы, редиректа или ответа прокси.
/wp-admin/ и статус хостинга.wp-config.php и экспорт базы, если панель доступна.Не путайте этот экран с общей ошибкой 500 в WordPress. Код 500 часто связан с PHP, плагином, темой или настройкой веб-сервера, а database connection error точнее указывает на этап доступа к данным.
Начните с его конфигурации, базы, пользователя и прав. Если другие проекты на том же хостинге работают, полное падение сервера менее вероятно.
Если независимые установки одновременно потеряли базы, проверяйте службу MySQL/MariaDB, нагрузку, хранилище, сеть между веб-сервером и базой, а также работы провайдера.
Если обновление иногда помогает, реквизиты, скорее всего, верны. Ищите исчерпание подключений, перезапуски MySQL, блокировки, долгие запросы, нехватку памяти, задержки диска или нестабильную сеть. Автоматическое обновление скрывает сбой, но не устраняет причину.
Сопоставьте время с рекламными кампаниями, импортом товаров, резервным копированием, cron, рассылкой и бот-трафиком. Качественный хостинг для сайта должен давать не только ресурсы, но и метрики, логи и возможность восстановления.
wp-config.phpСравнивайте файл с актуальными данными панели, а не со старым письмом или локальной копией.
DB_NAMEНазвание должно совпадать полностью. Shared hosting часто добавляет префикс аккаунта. После переноса новая база может получить другое имя при неизменном домене.
DB_USERПользователь базы не обязан совпадать с логином WordPress, FTP или панели. Убедитесь, что аккаунт существует и прикреплен к нужной базе.
DB_PASSWORDПароль чувствителен к регистру и специальным символам. Частая причина — сброс пароля в панели без обновления wp-config.php. Проверьте, что редактор не заменил прямые кавычки типографскими.
DB_HOSTlocalhost подходит не всегда. Провайдер может требовать отдельный hostname, IP, порт или socket. Значение может выглядеть как db.example.host:3306. После миграции не копируйте старый host без проверки.
Проверьте прямые кавычки, точки с запятой и случайные переносы. Используйте простой текстовый редактор. Перед изменением сохраните копию файла вне публичной директории.
При наличии SSH используйте стандартный клиент MySQL с теми же host, user и database. Не помещайте пароль прямо в команду, если он сохранится в истории shell. На управляемом хостинге применяйте штатный инструмент или попросите провайдера проверить соединение с веб-узла.
Ответ сокращает область поиска:
Access denied for user — неверный пароль, аккаунт, разрешенный host или права;Unknown database — ошибочное имя или удаленная база;Can't connect to MySQL server — неверный host/port, остановленная служба или сетевой блок;Connection refused — на endpoint нет принимающей службы;Если отдельное соединение работает, а WordPress — нет, сравните среду PHP, фактически загружаемый конфигурационный файл, db.php drop-in и переменные окружения.
Верный пароль не гарантирует доступ к нужной базе. MySQL учитывает аккаунт и источник соединения. После переноса пользователь может существовать, но не быть добавленным к новой базе или не иметь необходимых привилегий.
На shared hosting:
Не вставляйте случайные команды GRANT ALL на production. Избыточные права увеличивают последствия компрометации, а неверное совпадение host все равно заблокирует подключение.
Если конфигурация верна, изучите инфраструктуру:
Для периодического сбоя сопоставьте CPU, RAM, disk I/O и connections с точным временем. Средние показатели за сутки могут скрыть короткий пик, который ломает checkout.
Если WordPress соединяется с сервером, но сообщает о недоступных или поврежденных таблицах, не запускайте repair сразу для всего. Сначала создайте текущий dump и изучите журналы.
WordPress поддерживает режим ремонта:
define( 'WP_ALLOW_REPAIR', true );
Он открывает /wp-admin/maint/repair.php. Страница может работать без авторизации, поэтому удалите константу сразу после завершения. Repair не возвращает удаленные записи, не заменяет резервную копию и не исправляет аппаратный сбой.
До операции определите:
Для сложной базы проверяйте восстановление на копии или staging. Неудачная операция на единственной production-базе может осложнить дальнейшее восстановление.
После переноса ошибка часто возникает из-за неполной карты зависимостей. Убедитесь, что:
DB_HOST или порт не изменились;.env или панели актуальны;wp-config.php;wp-content/db.php;Профессиональная разработка сайта должна включать документацию среды, контролируемую миграцию и проверенный rollback, а не только копирование файлов.
База магазина меняется постоянно. Заказы, оплаты, остатки, корзины, сессии и webhooks записываются каждую минуту. Откат всей базы ко вчерашней копии может вернуть витрину, но удалить новые продажи.
Перед восстановлением:
Не просите клиента платить повторно до проверки транзакции. Отсутствующий order в WordPress не доказывает, что списания не было.
Необъяснимая смена пароля, неизвестный пользователь базы, модифицированный wp-config.php, посторонний db.php, новые cron-задачи или резкий рост запросов могут указывать на компрометацию.
В этом случае:
Возврат старого пароля не удаляет причину и механизм повторного доступа.
Короткий единичный сбой обычно не разрушает позиции, но длительная или регулярная недоступность мешает сканированию, блокирует покупки и тратит рекламный бюджет. Не отдавайте database error со статусом 200 OK. Для временной недоступности уместнее контролируемый 503 Service Unavailable, хотя реализация зависит от инфраструктуры.
После восстановления проверьте важные URL, sitemap, robots, canonical, формы и checkout. При длительном инциденте изучите Search Console и логи. Системное SEO-продвижение включает техническую доступность, а не только ключевые слова.
Не останавливайтесь после открытия главной. Проверьте:
Запишите первопричину точно: «пароль изменили без обновления конфигурации», «connections исчерпаны при импорте», «после миграции остался старый host». «Перезапустили сервер» описывает действие, а не причину.
Стоимость плановых и срочных работ указана на странице цен BB STUDIO, а примеры проектов — в портфолио.
DB_NAME, DB_USER, DB_PASSWORD, DB_HOST;WP_ALLOW_REPAIR удален после использования;Если ошибка возвращается или безопасной копии нет, свяжитесь с BB STUDIO для контролируемой диагностики и восстановления.
Error establishing a database connection — не полный диагноз, а признак разрыва в цепочке «WordPress → сеть → MySQL → база». Кратчайший путь к причине: определить масштаб, сохранить текущее состояние, проверить четыре параметра wp-config.php, отдельно протестировать реквизиты, изучить права и состояние службы, а затем ремонтировать таблицы или восстанавливать данные.
Последовательность важнее количества попыток. Одно подтвержденное изменение с точкой отката безопаснее десяти догадок на production.
WordPress не смог подключиться к MySQL/MariaDB или потерял соединение. Причиной могут быть неверные реквизиты, недоступный сервер, права, лимиты или поврежденные таблицы.
Да. Обычно используются доступ к файлам или SFTP, wp-config.php, панель базы и журналы хостинга. Админка сама зависит от базы.
Только если причина связана с данными или таблицами. Неверный пароль, DB_HOST или недоступный MySQL импорт не исправит. Полный откат магазина также способен удалить новые заказы.
Используйте режим после резервной копии и при подозрении на повреждение таблиц. Страница может быть доступна без входа, поэтому сразу удалите константу после завершения.
Периодические сбои чаще указывают на исчерпание соединений, нагрузку, перезапуск MySQL, долгие запросы, нехватку ресурсов или нестабильную сеть, а не на постоянно неверный пароль.
Давайте вместе создадим что-то потрясающее