#Что означает ошибка
Error establishing a database connection
WordPress хранит всё содержимое сайта в базе данных. При каждом запросе он подключается к ней, используя параметры из файла wp-config.php: DB_NAME, DB_USER, DB_PASSWORD, DB_HOST. Если подключиться не удалось — сайт и админка показывают эту строку. Сообщение не уточняет причину, поэтому проверяйте звенья цепочки по очереди.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Неверные данные подключения в wp-config.phpИмя базы, пользователь, пароль или хост указаны с ошибкой либо изменились при переносе. | Ошибка появилась после переезда, смены пароля или правки wp-config.php. | Сверьте значения с панелью хостинга и проверьте подключение вручную (шаг 3). |
| Сервер базы данных не работает или перегруженСлужба MySQL/MariaDB остановлена, упала из-за нехватки памяти либо исчерпала лимит соединений. | Ошибка периодическая, под нагрузкой; другие сайты на том же сервере тоже недоступны. | Проверьте и запустите службу, посмотрите журнал базы, лимиты соединений. |
| Неправильный DB_HOSTБаза находится на другом сервере или использует нестандартный порт или сокет. | Хостинг указывает отдельный адрес базы данных, а в конфигурации стоит localhost. | Укажите хост из панели хостинга (формат адрес или адрес:порт). |
| Повреждена база данныхТаблицы повреждены после сбоя. | Подключение удаётся, но ошибка остаётся только на сайте; админка сообщает о повреждении. | Восстановите таблицы встроенным инструментом (шаг 5) или из резервной копии. |
| Закончилось место или права пользователя базыДиск сервера заполнен, либо у пользователя базы отозваны права. | В журнале MySQL — ошибки записи; пользователь не может выбрать базу. | Освободите место, проверьте права пользователя на базу. |
#Пошаговая диагностика
- Определите, затронута ли админкаПопробуйте открыть главную WordPress и
/wp-admin/отдельно. Если оба URL показываютError establishing a database connection, проверьте общую БД; если ошибка только в админке, запишите отличающийся текст и журналы. Не начинайте с восстановления таблиц без подтверждения их повреждения. - Проверьте данные в wp-config.phpЧерез защищённый файловый менеджер или SSH откройте
wp-config.phpв корне сайта и сверьтеDB_NAME,DB_USER,DB_HOSTс параметрами базы в панели. ПарольDB_PASSWORDне показывайте в отчёте и не публикуйте в ошибке PHP; если его меняли, обновите одновременно учётную запись и конфигурацию. - Проверьте подключение вручнуюНа сервере с доступом к MySQL выполните
mysql -h реальный_хост -u реальный_пользователь -p имя_базы -e "SELECT 1". Отказ 1045 указывает на пароль или права, ошибка сокета — на служебный адрес, отсутствие базы — на импорт. Не создавайте новую пустую БД поверх рабочего сайта. - Проверьте, работает ли MySQLЕсли база локальная, проверьте
systemctl status mysql/mariadb, журналы и свободное место; на общем хостинге пользуйтесь разделом БД панели и поддержкой. Не перезапускайте MySQL общего сервера без окна обслуживания. - Восстановите таблицыРемонт таблиц допустим только при сообщении о повреждении, после полной копии БД и проверки типа движка. Для обычного WordPress на InnoDB универсальный
REPAIR TABLEне подходит; предпочтительна диагностика и восстановление из копии. После исправления откройте главную, вход и несколько записей.
#Шаг 3. Проверка подключения
wp-config.php. Если подключение успешно — данные верные, ищите проблему в хосте или самом WordPress; если Access denied — неверные данные или права. Подставьте свои значения.mysql -h localhost -u имя_пользователя -p имя_базы#Шаг 4. Состояние сервера
mariadb), место на диске с данными и последние записи журнала. Команды только читают.sudo systemctl status mysql --no-pagerdf -h /var/lib/mysqlsudo journalctl -u mysql -n 30 --no-pager#Шаг 5. Восстановление таблиц
define( 'WP_ALLOW_REPAIR', true );#Как проверить результат
- Сайт и
/wp-admin/открываются без сообщения об ошибке подключения. - В
wp-config.phpнет временной строкиWP_ALLOW_REPAIR.
#Если не помогло
Если сервер базы падает из-за нехватки памяти, снизьте нагрузку (кэширование, отключение тяжёлых плагинов) или увеличьте ресурсы. При переносе сайта убедитесь, что пользователь базы создан на новом сервере и имеет права. Если ничего не помогает, проверьте работу MySQL (systemctl status mysql), свободное место на диске и выполните mysqlcheck --auto-repair по базе.