Краткий ответ: «Error establishing a database connection» обычно означает одно из четырёх: сервис БД лежит (часто после OOM-килла или полного диска), в конфиге приложения неправильные учётные данные, приложение смотрит не на тот хост/сокет, или MySQL упёрся в лимит соединений. Сначала проверьте systemctl status mariadb — остановленный сервис является причиной в большинстве случаев.

Обзор

Веб-сервер может быть полностью здоров, а сайт будет показывать ошибку БД — приложение просто не может достучаться или аутентифицироваться в MySQL/MariaDB/PostgreSQL. Диагностика — фиксированная лестница из четырёх ступеней: сервис → диск/память → учётные данные → лимиты.

Что нужно иметь

  • Доступ по SSH и файл настроек БД приложения (wp-config.php, .env и т.д.).

Пошаговая инструкция

  1. Работает ли база?
    sudo systemctl status mariadb
    sudo journalctl -u mariadb -n 50
    Если она мертва, journal обычно говорит почему ещё до перезапуска.
  2. Проверьте двух тихих убийц:
    df -h
    sudo dmesg -T | grep -i 'out of memory'
    Полный диск или OOM-килл останавливают базы внезапно — сначала исправьте это, иначе она умрёт снова.
  3. Проверьте учётные данные, которые реально использует приложение:
    mysql -u APP_USER -p -h 127.0.0.1 APP_DB -e 'SELECT 1;'
    Отказ здесь означает рассинхрон конфига — не тот пароль, пользователь или имя базы.
  4. Сокет или TCP: localhost использует Unix-сокет, 127.0.0.1 — TCP. Если приложение ждёт сокет по другому пути, соединения падают, хотя сервер работает.
  5. Лимит соединений:
    mysql -e "SHOW STATUS LIKE 'Threads_connected'; SHOW VARIABLES LIKE 'max_connections';"
    На потолке — умеренно поднимите max_connections или исправьте утечку соединений в приложении.

Типичные проблемы

  • Ночные падения: OOM во время бэкапов — классика на малых планах; добавьте swap или уменьшите буферы.
  • Работало до смены пароля: конфиг приложения не обновили соответственно.
  • Цикл восстановления InnoDB после полного диска: освободите место, затем перезапустите; просмотрите journal на сообщения о повреждениях.

Когда обращаться в поддержку

Поддержка может подтвердить здоровье платформы (хост, хранилище), но содержимое базы и конфиги приложений — внутри вашего unmanaged-сервера. Если сервис не стартует даже со свободным диском и памятью — откройте тикет с последними 50 строками journal.

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

База работала нормально и внезапно остановилась — самая вероятная причина?

На малых серверах две классики: OOM-килл во время всплеска нагрузки или бэкапа и диск, заполненный на 100%. Оба останавливают MySQL внезапно и видны в dmesg и df -h.

Чем localhost отличается от 127.0.0.1 в конфигах БД?

Для клиентов MySQL localhost означает Unix-сокет, а 127.0.0.1 принуждает TCP. Если ожидаемого файла сокета нет, localhost не работает, хотя сам сервер полностью исправен.

Похожие статьи

Нужна помощь? Связаться с поддержкой Cloud2Y →

Помог ли вам данный ответ? 0 Пользователи нашли это полезным (0 голосов)