Задать вопрос
Все статьи / Полезная информация / Как исправить ошибку «DB query error, please try later»
Найти результаты:
Период:
с:
 
по:
Помощь в поиске

Помощь в поиске

apple banana
Найти записи, которые содержат хотя бы одно из двух слов.

+apple +juice
Найти записи, которые содержат оба слова.

+apple macintosh
Найти записи, которые содержат слово 'apple', но положение записей выше, если они также содержат 'macintosh'.

+apple -macintosh
Найти записи, которые содержат слово 'apple', но не 'macintosh'.

+apple ~macintosh
Найти записи, которые содержат слово 'apple', но если запись также содержит слово 'macintosh', rate it lower than if row does not. Это более "мягкий" чем поиск '+apple -macintosh', для которого наличие 'macintosh' вызывает что записи не будут возвращены вовсе.

+apple +(>turnover <strudel)
Найти записи, которые содержат слова 'apple' и 'turnover', или 'apple' и 'strudel' (в любом порядке), но ранг 'apple turnover' выше чем 'apple strudel'.

apple*
Найти записи, которые содержат такие слова как 'apple', 'apples', 'applesauce', или 'applet'.

"some words"
Найти записи, которые содержат точную фразу 'some words' (например записи содержащие 'some words of wisdom', но не "some noise words").

Как исправить ошибку «DB query error, please try later»

В 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. Выполните команду для открытия файла настроек подключения к базе данных:

vim ~/www/domain.ru/bitrix/php_interface/dbconn.php

Где domain.ru — это корневая папка вашего сайта.

3. После открытия файла нажмите клавишу i для перехода в режим редактирования.

4. Найдите строки с параметрами $DBDebug и $DBDebugToFile и замените значение false на true, чтобы включить отображение ошибок и запись их в файл:

$DBDebug = true;
$DBDebugToFile = true;

5. Чтобы выйти из режима редактирования, нажмите Esc, затем введите команду:

:wq

6. Нажмите Enter, чтобы сохранить изменения и выйти из редактора.

Через ispmanager

Чтобы точно определить причину ошибки DB query error, необходимо увидеть ее полное описание. Для этого в Bitrix используется debug-режим — режим отладки, который помогает разработчикам просмотреть полный текст ошибки и быстрее ее исправить.

Как включить debug-режим через панель управления ispmanager:

  1. Войдите в панель управления ispmanager.
  2. Перейдите в раздел «Менеджер файлов».
  3. Найдите и откройте папку php_interface. 
  4. Затем дважды кликните по файлу dbconn.php.
  5. В файле найдите блоки с параметрами $DBDebug и $DBDebugToFile. Замените значения false на true. 
  6. Нажмите Ok для сохранения изменений.
  7. После этого перейдите на сайт — теперь ошибки будут отображаться в полном виде и выделяться красным цветом, что позволит легко понять источник проблемы.

Причины возникновения ошибки 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:

cd ~/www/domain.ru/bitrix/backup/

Где domain.ru — корневая директория вашего сайта.

3. Посмотрите список файлов и их размер:

ls -la

4. Удалите старые или ненужные резервные копии, чтобы освободить место. Например:

rm domain.ru_20230101_120000_full_abc12345.tar domain.ru_20230201_120000_full_def67890.tar

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

Способ 2. Изменить данные для подключения к базе данных

Через терминал

Некорректные логин, пароль или название базы данных могут привести к ошибке подключения и, соответственно, к ошибке DB query error. 

Чтобы проверить и при необходимости изменить настройки подключения:

1. Подключитесь к серверу по SSH.

2. Откройте файл настроек подключения:

vim ~/www/domain.ru/bitrix/php_interface/dbconn.php

Нажмите i для перехода в режим редактирования и измените параметры:

  • $DBLogin = "ваш_логин";
  • $DBPassword = "ваш_пароль";
  • $DBName = "имя_базы_данных";

4. Чтобы сохранить изменения, нажмите Esc, введите :wq и нажмите Enter.

5. Дополнительно проверьте и при необходимости исправьте настройки в файле .settings.php:

vim ~/www/domain.ru/bitrix/.settings.php

6. Включите режим редактирования (i) и найдите параметры подключения:

'database' => 'имя_базы_данных',
'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. При этом запросы к поврежденным таблицам не выполняются корректно, что приводит к появлению ошибки.

В таких ситуациях самый надежный способ вернуть работу сервиса — восстановить базу данных из резервной копии:

  • Найдите резервную копию базы, которая была сделана в период, когда сайт работал без сбоев.
  • Восстановите базу данных из этой копии, чтобы вернуть таблицы в исправное состояние.

Если резервных копий нет, стоит проверить в панели управления — там вы найдете автоматические бэкапы, которые помогут вернуть данные.

Предыдущая статья
Как использовать Git на хостинге
Следующая статья
Как подключиться к виртуальной машине VMware Cloud Director по...