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