Ошибка db query error please try later на сайте 1С битрикс
Всех вновь приветствую на страницах своего блога, продолжаем заниматься уроками по 1С битрикс. На днях у меня один физический сервер переезжал в другой цод, товарищи из данного цода начали выполнять работы раньше и не дали возможности правильно потушить виртуальные машины. После переезда на одном из сайтов я увидел вот такую ошибку db query error please try later, давайте рассмотрим как ее решить и на будущее знать, что делать, на это у вас уйдет не более 5 минут.
Решаем ошибку db query error
Ранее у меня была установка bitrix на centos. Причин у данной ошибки может быть несколько и мы их рассмотрим все. Для начала приведу пример скриншота, как выглядит ошибка db query error please later, согласитесь не очень информативно.
Закончилось свободное место
Да такое бывает у вас может закончиться место на локальном диске и Centos просто не может уже куда либо писать, и вы ловите эту ошибку. Для того, чтобы проверить есть ли у вас свободное пространство вам необходимо подключиться к серверу по ssh протоколу и ввести вот такую команду.
Вы получите сводку по разделам, в моем примере места свободного достаточно.
Повредилась база данных Mysql
Вторая причина, уже посерьезнее и она кроется в том, что у вас поломалась табличка или если угодно база данных Mysql. Чтобы это выяснить вам, потребуется включить дебагер. Нам нужно включить один параметр вот в этом файле.
Для того чтобы его отредактировать я вам советую зайти по sftp-ssh соединению, как это сделать я описывал в заметке Как зайти на ftp сервер хостинга. Единственно, что когда будите создавать подключение выбирайте sftp-ssh. Еще может так же помочь утилита WinSCP 5.7.6, делает она то же самое. И та и другая просто файловые менеджеры.
Открываем этот файл и находим переменную $DBDebug = false; Изменяем ее значение на $DBDebug = true; Обратите внимание, что в этом файле есть такие полезные параметры как:
- $DBLogin > логин к базе данных
- $DBPassword > пароль
- $DBName > имя базы данных
В итоге теперь обновив страницу сайта я получил
MySQL Query Error: SELECT ID, SESSION_DATA FROM b_stat_session_data WHERE GUEST_MD5 = '71dbd5e22cd7ad7065e17a7eb6940a59' and DATE_LAST > DATE_ADD(now(), INTERVAL - 1440 SECOND) LIMIT 1 [Table './edisclosure2009/b_stat_session_data' is marked as crashed and last (automatic?) repair failed]
От сюда видно, что у меня по крошилась база данных edisclosure2009, значит ее нужно восстановить, не забудьте заново поставить $DBDebug = false, так как может дико тормозить сайт. Я для этого использую утилиту EMS SQL Manager for MySQL. Открываете ее и переходите в пункт "Запустить SQL Manager for MySQL".
Имя хоста оставляете localhost, так и должно быть, ваш порт 3306 не должен светиться наружу. Далее указываем логин и пароль от базы данных и ставим галку Использовать туннелирование.
Задаем ip адрес или dns имя сервера к которому мы будем подключаться по ssh соединению, и указываем логин и пароль для доступа.
Указываем имя базы данных сайта на битриксе 1С. Я еще обычно ставлю опцию Автоподключение при запуске.
Теперь выбираете в левой части вашу базу данных и щелкаете по ней правым кликом, выбираете из контекстного меню "Подключиться к базе данных".
Все теперь выбираете базу и из меню Службы выбираете Восстановление таблиц. После не долгой процедуры вы исправите ошибку db query error please try later на сайте 1С битрикс.
Благодарю, дружище! Очень помогла твоя статья в трудную минуту!
С Уважением, Андрей
Добрый день.
Недавно на сервере закончилось свободное место и возникла ошибка «DB query error. Please try later.» Место на сервере освободили, сайт стал доступен, но, когда пользователь заходит в первый раз или спустя какое-то время неактивности обновляет страницу, у него показывает ту же самую ошибку. После перезагрузки страницы, сайт загружается нормально.
Кэш чистил, не помогло. В чем может быть проблема?
Вообще странно, похоже на кэш, попробуйте еще раз произвести консолидацию БД.
Спасибо большое!
неделю ходил по кругу, а все было просто, параметры подключения к базе
прописывается не в одном файле /bitrix/.settings.php но и в /bitrix/php_interface/dbconn.php !!!
Спасибо, за то, что поделились, опытом.
Да, добавьте к причине в статью предыдущий коммент! Мне прям помогло, я не знал что в двух файлах параметры подключения к базе прописаны..
Как быть, если таких сайтов 50 на сервере и у всех сайтов такая ошибка?
Сейчас все попробовал сделать по инструкции и….
Нужен дамп БД, чтобы восстановить?
Т.е. софт не исправляет ошибки в БД, а только импортирует БД с локального ПК?
Печаль (((
Не имел дел с таким количеством баз