WordPress Linux

WordPress: ошибка установки соединения с базой данных

  • Обновлено
  • Чтение ≈ 3 минуты
  • Нужны права администратора

Краткий ответ

Проверьте wp-config.php, сервер MySQL и права.

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Как исправить
  4. Что важно учесть

#Что означает ошибка

Сообщение
Ошибка соединения с БД

Надпись «Error establishing a database connection» (на русскоязычных сайтах — «Ошибка при установке соединения с базой данных») означает, что WordPress не смог обратиться к MySQL или MariaDB. Сам движок на PHP при этом работает, но без базы не может показать ни одной записи, поэтому вместо сайта выводится только эта строка.

Ошибка возникает как после изменений на сервере (смена пароля пользователя БД, перенос хостинга, переполнение диска), так и сама по себе, если служба MySQL упала из-за нехватки памяти. Ниже — причины в порядке убывания вероятности.

#Причины и решения

Возможная причинаКак узнатьЧто делать
Неверные данные подключения в wp-config.phpПароль, имя базы, пользователь или хост (DB_HOST) не соответствуют реальным. Типично после переноса сайта и смены пароля в панели хостинга.Ошибка появилась сразу после переноса или смены пароля; админка тоже недоступна.Сверьте DB_NAME, DB_USER, DB_PASSWORD, DB_HOST с данными из панели и исправьте.
Служба MySQL остановлена или перегруженаНа слабых VPS ядро убивает процесс mysqld при нехватке памяти (OOM). Сайт работает, затем внезапно «падает» и иногда оживает сам.Ошибка появляется периодически, в журнале — записи об OOM или о перезапуске MySQL.Перезапустите службу, увеличьте RAM или настройте swap и ограничьте буферы MySQL.
Повреждены таблицы базыПосле аварийного отключения или переполнения диска таблицы MyISAM/InnoDB могут оказаться повреждены; в админке видно сообщение о необходимости восстановления.Часть страниц открывается, часть нет; в логах — Table is marked as crashed.Включите WP_ALLOW_REPAIR в wp-config.php и выполните восстановление на странице /wp-admin/maint/repair.php.
Закончилось место на диске или превышены лимиты хостингаКогда диск заполнен, MySQL не может писать во временные файлы и отказывает в подключении. На виртуальном хостинге может быть исчерпан лимит соединений.df показывает 100%, на хостинге пришло предупреждение о превышении.Освободите место (логи, бэкапы, кэш) или повысьте тариф.

#Как исправить

  1. Проверьте wp-config.phpЧерез защищённый файловый менеджер откройте wp-config.php и сверьте DB_NAME, DB_USER, DB_HOST с настройками хостинга. Пароль не выкладывайте в журнал и не копируйте в незашифрованный файл; при смене пароля обновите конфигурацию синхронно с учётной записью MySQL.
  2. Проверьте подключение вне WordPressПо SSH с теми же реквизитами выполните mysql -h фактический_хост -u фактический_пользователь -p имя_базы -e "SELECT 1"; получите либо 1, либо точный код отказа. При 1045 разбирайте права/пароль, при 2002/2003 — адрес и службу. Не выполняйте тест под root вместо пользователя WordPress.
  3. Проверьте службу и памятьЕсли MySQL локальный, проверьте systemctl status mysql и журнал на перезапуски и OOM, а также доступность сокета/порта. В панели виртуального хостинга состояние сервиса выясняйте у провайдера, а не пытайтесь перезапустить чужой общий сервер.
  4. Восстановите таблицыЕсли сообщение явно указывает на повреждённую таблицу, сначала сохраните дамп и определите тип движка. Для InnoDB автоматический REPAIR TABLE не является универсальным решением; восстановление проводите по проверенной резервной копии. Не включайте WP_ALLOW_REPAIR на публичном сайте без понимания ограничения доступа.
  5. Проверьте местоПроверьте df -h и df -i для раздела с базой и квоту панели хостинга; при переполнении остановите рост журналов и резервных копий безопасным способом. После освобождения места откройте главную, /wp-admin/ и несколько записей, проверяя новые ошибки MySQL.
  6. Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
    Выберите подходящий вариант — это не команды для последовательного выполнения
    Вариант 1Проверка состояния MySQL и последних ошибок.
    Linux · Терминал (Bash)КомандаНужен sudo
    Проверка состояния MySQL и последних ошибок.
    systemctl status mysql && tail -n 50 /var/log/mysql/error.log
    Вариант 2Резервная копия базы перед восстановлением.
    Linux · Терминал (Bash)Команда
    Резервная копия базы перед восстановлением.
    mysqldump -u USER -p DBNAME > backup.sql

#Что важно учесть

Перед любыми операциями с таблицами сделайте дамп базы (mysqldump) и копию файлов сайта. Если ошибка появилась только в админке, а на сайте всё работает, проверьте также права пользователя БД и поле DB_HOST: для некоторых хостингов требуется отдельный адрес сервера баз данных.

Не оставляйте строку WP_ALLOW_REPAIR включённой: страница восстановления доступна без авторизации, и ею могут воспользоваться посторонние.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.