1С-Битрикс: ошибка соединения с базой данных

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

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

Ошибка 1С-Битрикс «Ошибка соединения с базой данных» вызвана неверными данными в .settings.php и dbconn.php, остановкой MySQL, лимитом соединений или повреждением таблиц. Проверьте доступ, службу и выполните REPAIR TABLE.

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

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

Сообщение
Ошибка соединения с базой данных

Битрикс хранит параметры подключения в файлах bitrix/.settings.php (раздел connections) и bitrix/php_interface/dbconn.php (старый вариант). Сообщение «Ошибка соединения с базой данных» означает, что PHP не смог подключиться к MySQL/MariaDB либо подключился без прав. Проверка выполняется в такой последовательности: параметры → служба → права пользователя → лимиты → повреждения таблиц.

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

Возможная причинаКак узнатьЧто делать
Неверные данные подключенияХост, логин, пароль или имя БД изменены.После переноса сайта.Сверьте с панелью хостинга.
Сервер БД недоступенMySQL остановлен.systemctl status mysql — inactive.Запустите службу.
Превышены лимиты БДДостигнут max_connections или лимит хостинга.В логе «Too many connections».Увеличьте лимит.
База поврежденаТаблицы повреждены после сбоя.CHECK TABLE показывает ошибки.Выполните REPAIR.

#Пошаговое решение

  1. Откройте параметры подключенияОткройте /bitrix/.settings.php и при необходимости /bitrix/php_interface/dbconn.php в файловом менеджере хостинга. Найдите фактически используемую конфигурацию подключения connections и сопоставьте хост, имя БД и пользователя с панелью; не публикуйте пароли и не изменяйте несколько конфигураций без знания версии Битрикс.
  2. Проверьте вход вручнуюЧерез терминал сервера выполните mysql -h фактический_хост -u фактический_пользователь -p имя_базы -e "SELECT 1". При 1045 проверяйте учётную запись и права, при 2002 — сокет/службу, при 2003 — порт/сетевую доступность. Для удалённой БД используйте только разрешённый адрес, не открывая 3306 для всего Интернета.
  3. Проверьте службуЕсли БД локальная и у вас есть права администратора, выполните systemctl status mysql или mariadb, а также journalctl -u mysql -n 50 --no-pager с подходящим именем службы. Если служба остановилась, сначала разберитесь с первой ошибкой в журнале, не применяя циклический перезапуск.
  4. Проверьте свободное местоВ терминале сервера проверьте df -h, df -i для раздела БД, а также использование квоты аккаунта панели хостинга. Если место кончилось, не удаляйте файлы InnoDB и binlog наугад; найдите источник роста и сохраните резервную копию, затем повторите тестовый SELECT.
  5. Проверьте лимитыЕсли соединения работают не всегда, в SQL-клиенте выполните SHOW VARIABLES LIKE "max_connections"; и SHOW GLOBAL STATUS LIKE "Threads_connected";. Сверьте с журналом ошибок Too many connections и нагрузкой. Увеличивайте лимиты только после расчёта памяти и устранения утечек соединений в приложении.
  6. Проверьте таблицыЕсли при подключении появилось конкретное сообщение о повреждённой таблице, определите её тип через SHOW TABLE STATUS и сделайте дамп/снимок. mysqlcheck --auto-repair не является универсальным исправлением InnoDB; восстановление должно соответствовать движку и резервной копии.
  7. Проверьте кодировку и режимПосле переноса сайта убедитесь, что настройки кодировки и SQL mode совпадают с требованиями версии Битрикс, но не меняйте collation/системный SQL mode ради ошибки TCP. Такие параметры важны лишь если сервер подключается, а ошибка возникает во время запросов. Запишите точный SQLSTATE и сообщение перед изменением.
  8. Отключите кэш и проверьтеКэш Битрикс очищайте только после восстановления БД и только штатной командой/панелью, если проблема действительно в устаревших данных. Очистка кеша не исправляет ошибку подключения. Откройте сайт и админку, проверьте корзину/поиск и повторные ошибки в журнале.
  9. Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
    Выберите подходящий вариант — это не команды для последовательного выполнения
    Вариант 1Проверка подключения и состояния БД (подставьте свои значения).
    Linux · Терминал (Bash)С осторожностьюНужен sudo
    Проверка подключения и состояния БД (подставьте свои значения).
    mysql -h localhost -u bitrix_user -p bitrix_db -e "SELECT 1;"
    sudo systemctl status mysql
    # Автоматический ремонт таблиц без определения движка и резервной копии не применять.

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

    Вариант 2Фрагмент bitrix/.settings.php с параметрами подключения (значения замените).
    PHP
    Фрагмент bitrix/.settings.php с параметрами подключения (значения замените).
    'connections' => array(
      'value' => array(
        'default' => array(
          'className' => '\\Bitrix\\Main\\DB\\MysqliConnection',
          'host' => 'localhost',
          'database' => 'bitrix_db',
          'login' => 'bitrix_user',
          'password' => '********',
          'options' => 2,
        ),
      ),
    ),

После переноса сайта проверьте, что пароль не содержит спецсимволов, неверно экранированных в PHP-строке (кавычки, $). Если на хостинге используется отдельный сервер БД, хост нужно указывать не localhost, а адрес из панели. При превышении лимитов проверьте агенты и cron Битрикса: тяжёлые задачи на хите создают много соединений — переведите агентов на cron. Для восстановления из резервной копии используйте mysql DBNAME < dump.sql. Документация — 1С-Битрикс: Dev.

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

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

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