Содержание
Ошибка db query error please try later на сайте 1С битрикс
Ошибка 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 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С битрикс.
Обновление страницы: выполните повторный поиск страницы, нажав кнопку "Обновить". Возможно, тайм-аут произошел из-за перегрузки Интернета.
Проверка написания: проверьте правильность написания адреса веб-узла. Возможны ошибки при вводе адреса.
Доступ из ссылки: если имеется ссылка на искомую страницу, попробуйте получить доступ к странице с помощью этой ссылки.
Обращение на веб-узел: убедитесь, что веб-узел еще существует, связавшись с администратором веб-узла. Это можно сделать, используя адрес электронной почты или номер телефона, указанные на домашней странице веб-узла.
Технические сведения (для персонала службы поддержки)
Ошибка BD query error please try later
Причин у данной ошибки может быть несколько и давайте рассмотрим их по порядку.
Причина № 1
Причина № 2
Причина № 3
Самая трудоемкая и противная причина — поломалась база данных Mysql.
Но для начала превратим сухую "BD query error please try later" в более информативный вид. Открываем файл /bitrix/php_interface/dbconn.php по ssh/ftp или панель хостинга и меняем $DBDebug = false; на $DBDebug = true;
Теперь обновив страницу сайта вы получите подробную ошибку. Самые частые ошибки базы данных в Битрикс приведены в статье.
Ошибки вида "Incorrect key file", "Can’t open file", "Incorrect information in file" и др. возможно автоматически починить выполнив восстановление всех таблиц при неработающем сайте. Для этого надо знать логин и пароль к базе данных, и передать их на страницу проверки по url:
Значения db_login и db_password берутся из /bitrix/php_interface/dbconn.php
Не забудьте заново поставить $DBDebug = false, так как может дико тормозить сайт. И посмотрите еще 9 советов по ускорению сайта на Битриксе тут.