В Bitrix ошибка «DB query error, please try later» может возникнуть внезапно и полностью остановить работу сайта. Она сигнализирует о проблемах с подключением к базе данных или с выполнением SQL-запросов.
Также она может выглядеть как:
- DB query error;
- Got error 28 from storage engine;
- Mysql connect error [localhost]: (2002) No such file or directory (400).
Причины могут быть разными: от перегруженного сервера и битой таблицы до ошибок в коде или неправильной конфигурации. Далее разберемся, что вызывает такую ошибку и как ее решить.
Как включить полное отображение ошибок
Полное отображение ошибок позволяет видеть сообщения о проблемах с базой данных прямо на сайте и сохранять их в логах, что значительно упрощает диагностику и устранение неполадок.
Через терминал
1. Подключитесь к серверу по SSH с помощью терминала или любого SSH-клиента.
2. Выполните команду для открытия файла настроек подключения к базе данных:
Где domain.ru — это корневая папка вашего сайта.
3. После открытия файла нажмите клавишу i для перехода в режим редактирования.
4. Найдите строки с параметрами $DBDebug и $DBDebugToFile и замените значение false на true, чтобы включить отображение ошибок и запись их в файл:
$DBDebugToFile = true;
5. Чтобы выйти из режима редактирования, нажмите Esc, затем введите команду:
6. Нажмите Enter, чтобы сохранить изменения и выйти из редактора.
Через ispmanager
Чтобы точно определить причину ошибки DB query error, необходимо увидеть ее полное описание. Для этого в Bitrix используется debug-режим — режим отладки, который помогает разработчикам просмотреть полный текст ошибки и быстрее ее исправить.
Как включить debug-режим через панель управления ispmanager:
- Войдите в панель управления ispmanager.
- Перейдите в раздел «Менеджер файлов».
- Найдите и откройте папку php_interface.
- Затем дважды кликните по файлу dbconn.php.
- В файле найдите блоки с параметрами $DBDebug и $DBDebugToFile. Замените значения false на true.
- Нажмите Ok для сохранения изменений.
- После этого перейдите на сайт — теперь ошибки будут отображаться в полном виде и выделяться красным цветом, что позволит легко понять источник проблемы.
Причины возникновения ошибки DB query error
Наиболее распространенные причины:
- Недостаток дискового пространства на сервере. Bitrix по умолчанию использует встроенное автоматическое резервное копирование, которое сохраняет копии сайта в папке /bitrix/backup/. Со временем копии занимают все больше места на диске. Когда свободное пространство заканчивается, база данных перестает корректно функционировать, что и вызывает ошибки.
- Повреждение базы данных MySQL. Таблицы базы данных могут повредиться из-за сбоев на сервере, внезапных отключений питания или ошибок в работе самого MySQL. В таких случаях возникает ошибка при выполнении запросов к поврежденным таблицам.
- Неверные настройки подключения к базе данных. Файл настроек подключения к базе данных расположен в каталоге /bitrix/php_interface/dbconn.php. Если в нем указаны неправильные параметры — логин, пароль, имя базы данных или адрес сервера, — сайт не сможет установить соединение с базой. В результате при выполнении запросов будет появляться ошибка.
Способы устранения ошибки DB query error
Как мы уже разобрались, ошибка DB query error часто связана с проблемами работы базы данных — например, нехваткой места на диске или некорректными настройками подключения.
Теперь посмотрим, как ее решить:
Способ 1. Освободить место для работы базы данных
Если на сервере закончилось свободное дисковое пространство, MySQL может работать с перебоями и выдавать ошибки.
Чтобы освободить место:
1. Подключитесь к серверу по SSH.
2. Перейдите в папку с резервными копиями Bitrix:
Где domain.ru — корневая директория вашего сайта.
3. Посмотрите список файлов и их размер:
4. Удалите старые или ненужные резервные копии, чтобы освободить место. Например:
После освобождения места проверьте работу сайта и базы данных.
Способ 2. Изменить данные для подключения к базе данных
Через терминал
Некорректные логин, пароль или название базы данных могут привести к ошибке подключения и, соответственно, к ошибке DB query error.
Чтобы проверить и при необходимости изменить настройки подключения:
1. Подключитесь к серверу по SSH.
2. Откройте файл настроек подключения:
Нажмите i для перехода в режим редактирования и измените параметры:
- $DBLogin = "ваш_логин";
- $DBPassword = "ваш_пароль";
- $DBName = "имя_базы_данных";
4. Чтобы сохранить изменения, нажмите Esc, введите :wq и нажмите Enter.
5. Дополнительно проверьте и при необходимости исправьте настройки в файле .settings.php:
6. Включите режим редактирования (i) и найдите параметры подключения:
'login' => 'ваш_логин',
'password' => 'ваш_пароль',
7. После внесения изменений нажмите Esc, введите :wq и нажмите Enter.
Через ispmanager
Проблемы с подключением к базе данных часто возникают из-за некорректных логина, пароля или имени базы данных, указанных в файле /bitrix/php_interface/dbconn.php.
Чтобы проверить и изменить эти данные через панель управления ispmanager:
1. Войдите в панель управления ispmanager.
2. Перейдите в раздел «Базы данных».
3. Кликните по нужной базе данных, затем выберите пункт «Пользователи».
4. Найдите нужного пользователя базы данных и нажмите «Изменить параметры пользователя БД» (знак карандаша).
5. Кликните на значок «глаз», чтобы увидеть текущий пароль.
Проверьте имя пользователя и пароль, после чего нажмите «Отмена», если ничего менять не нужно.
6. Перейдите в раздел «Менеджер файлов».
7. Откройте папку php_interface и дважды кликните по файлу dbconn.php.
8. Заполните поля:
- $DBLogin — имя пользователя базы данных,
- $DBPassword — пароль пользователя базы данных,
- $DBName — имя базы данных.
После внесения изменений нажмите Ok для сохранения внесенных изменений.
9. Дополнительно проверьте настройки подключения в файле .settings.php. Для этого перейдите в папку /bitrix/ и дважды кликните по файлу .settings.php.
10 .Заполните соответствующие поля:
- database — имя базы данных,
- login — логин пользователя БД,
- password — пароль пользователя БД.
После этого нажмите Ok.
Способ 3. Восстановить базу данных из резервной копии
Иногда причиной ошибки DB query error становятся поврежденные таблицы базы данных. Такое может случиться из-за сбоев на сервере, внезапных отключений питания или ошибок в работе самого MySQL. При этом запросы к поврежденным таблицам не выполняются корректно, что приводит к появлению ошибки.
В таких ситуациях самый надежный способ вернуть работу сервиса — восстановить базу данных из резервной копии:
- Найдите резервную копию базы, которая была сделана в период, когда сайт работал без сбоев.
- Восстановите базу данных из этой копии, чтобы вернуть таблицы в исправное состояние.
Если резервных копий нет, стоит проверить в панели управления — там вы найдете автоматические бэкапы, которые помогут вернуть данные.