Пользователь 41537 Заглянувший Сообщений: 9 |
Добрый день, есть сайт Medevices на очень старом битриксе. В ЭТОМ разделе есть отдельный скрипт. Вопрос: почему при попытке авторизации на странице со скриптом битрикс выдает ошибку MySQL Query Error и пытается подключиться не к своей базе данных, при этом авторизация все равно происходит (данные пишутся в сессию). |
Пользователь 100733 Постоянный посетитель Сообщений: 387 |
Опишите «отдельный скрипт» и приведите текст ошибки. Возможно post информация авторизации конфликтует с вашим скриптом. (маловероятно, но пока что не известно что за скрипт). Проблема возникла недавно или была изначально? Подозреваю что проблему можно будет решить только взглянув на код «отдельный скрипт». Если я правильно понял, что это самописный и не типовой функционал не использующий API битрикса. |
Пользователь 41537 Заглянувший Сообщений: 9 |
#3 0 18.09.2011 17:52:56 Проблему отловил только вчера, была ли она раньше не знаю.
Где u83089.nom — база данных «скрипта». Но при этом, авторизация битрикса все же происходит (т.е. в сессии появляются данные). |
||
Пользователь 100733 Постоянный посетитель Сообщений: 387 |
В режиме отладки посмотрите какой компонент вызвал данный mysql запрос, b_user_option — таблица битрикса, ваш скрипт тянет инфу из другой установки битрикса? Пока что подозреваю что кто то не использует указатель на соединение к базе, но пока что мало оснований для утверждений, только предположение… |
Пользователь 41537 Заглянувший Сообщений: 9 |
Данный запрос происходит если я пытаюсь авторизоваться в битриксе (авторизация статичной формой висит слева). Мой скрипт вообще не относится к битриксу, он тянет инфу из своей базы. А вот почему битрикс пытается из этой базы тянуть инфу это уже вопрос. Соединение с базой в моем скрипте происходит созданием обьекта класса базы данных) (самописного). |
Пользователь 100733 Постоянный посетитель Сообщений: 387 |
Тогда предположительно ошибка в «очень старом битриксе». Возможно в каком то месте не правильно сделан запрос. Укажите конкретней версию. Ваш скрипт закрывает соединение ? Думаю не каких конфликтов быть не должно если после всей работы скрипта закрывать соединение. Хотя стоп, вы уверены что запрос вызывает компонент формы входа ? Авторизация должна быть до обработки страницы, а значит до работы скрипта. |
Пользователь 41537 Заглянувший Сообщений: 9 |
Соединение закрывается деструктром класса. Ошибка возникает даже при использовании mysql_pconnect. Битрикс — некая редакция «Стандарт» 2008 года. |
Пользователь 41537 Заглянувший Сообщений: 9 |
#8 0 18.09.2011 19:25:29 А что если не форма? Ошибка возникает при вводе данных и нажатии кнопки «Вход» =)
По этому линку через раз эррорит
|
||||
Пользователь 100733 Постоянный посетитель Сообщений: 387 |
Ладно, пока думаю что это может быть, банальный вопрос, но все же: «Вы проверили авторизацию на других страницах?» И кстате все таки включите отладку и посмотрите какой именно модулькомпонент вызвал запрос. В отладке можно увидеть в каком именно файле и в какой строке был вызов. И уже может быть в коде можно будет увидеть багу. |
Пользователь 41537 Заглянувший Сообщений: 9 |
#10 0 18.09.2011 20:35:25 Да, конечно с других страниц все ок. |
Пользователь 100733 Постоянный посетитель Сообщений: 387 |
#11 0 18.09.2011 20:56:20 В панели инструментов кнопка с надписью «Отладка», в старом дизайне это вроде в панели «Разработка» Под каждым компонентом и в конце страницы выводиться статистика и ссылка для просмотра детальной инфы по мускульным запросам |
Пользователь 41537 Заглянувший Сообщений: 9 |
#12 0 18.09.2011 21:39:16
Косячит
Запрос №2…. |
||||||||
Пользователь 100733 Постоянный посетитель Сообщений: 387 |
#13 0 18.09.2011 22:37:10 Вызов из ядра…. хм |
Пользователь 41537 Заглянувший Сообщений: 9 |
#14 0 19.09.2011 02:06:48 В базе битрикса эта таблица есть, в моей базе (с которой скрипт тянет инфу) ее нет и никогда не было. |
Пользователь 3954 Администратор Сообщений: 2072 |
#15 0 19.09.2011 10:39:09 Лев, судя по всему, какие-то файлы ядра битрикса на вашей установке оказались новее, чем база данных. Самое эффективное решение — купить продление и обновить файлы и базу до актуальной версии. |
Михаил Митрофанов
Администратор Сообщений: 1433 |
#16 0 19.09.2011 10:52:14
А в продукте другая БД?
См. http://ru.php.net/manual/ru/function.mysql-connect.php |
||||
Пользователь 3954 Администратор Сообщений: 2072 |
#17 1 19.09.2011 11:29:24 А, понял. Похоже, скрипт делает другую базу по умолчанию.
|
||
Пользователь 41537 Заглянувший Сообщений: 9 |
#18 1 19.09.2011 13:04:31
Большое спасибо, все стало ок. А вообще почему возникала такая ошибка? |
||||||
Михаил Митрофанов
Администратор Сообщений: 1433 |
#19 1 19.09.2011 13:40:18
Ну если помогли данные нами рекомендации, значит проблема в неправильном вызове функции mysql_connect(), подробнее в в оф. документации http://ru.php.net/manual/ru/function.mysql-connect.php |
||
Пользователь 117498 Заглянувший Сообщений: 1 |
#20 0 16.02.2012 18:00:59 Ошибка «Undefined variable: nHasSelected» в строке 34 (Последняя в вырезке): <? $previousLevel = 0; if ($previousLevel && $arItem[«DEPTH_LEVEL»] < $previousLevel): if ($arItem[«IS_PARENT»]): $className = $nHasSelected ? ‘selected’ : »;//($bHasSelected ? ‘selected’ : »); в файле (Я пока неопытный) |
Пользователь 124471 Заглянувший Сообщений: 1 |
#21 0 18.06.2014 13:31:55
Спасибо. Помогло. |
||||
Пользователь 90197 Эксперт Сообщений: 739 |
#22 0 07.11.2021 08:57:20 У меня такая же ошибка на странице хайлоад блока в админке /bitrix/admin/highloadblock_rows_list.php?ENTITY_ID=11&lang=ru |
Пользователь 1637473 Заглянувший Сообщений: 22 |
#23 0 08.02.2022 11:17:21 Тоже ошибка MySQL Query Error! при попытке входа, причем вход не происходит, просто крутится колесика на кнопке входа, страница не обновляется. Случилось после обновления битрикса, до этого работало нормально. |
На сайте с 28.03.2008
Offline
354
12 октября 2011, 05:31
4241
На одном ресурсе заметил следующую проблему: условно 2 минуты сайт работает нормально, вс егрузится, а следующие 2 минуты вскакивает ошибка MySQL query error или 500. Другие сайты на этом сервере работают нормально.
При этом не работает почтовый сервер и FTP.
В чем может быть проблема? Суппорт хостинга VDS пока молчит.
В панели посмотрел, написано, что параметр oomguarpages в Желтой зоне, т.е. типа перегрузки его. Хелп )
L
На сайте с 13.01.2011
Offline
114
12 октября 2011, 05:55
#1
надо посмотреть через ssh, чтобы узнать в чем проблема — обращайтесь
Контакты-icq 535609 ()
На сайте с 08.06.2007
Offline
110
12 октября 2011, 06:39
#2
qilly, Смотрите логи веб и почтового сервера — там все написано будет.
На сайте с 28.03.2008
Offline
354
12 октября 2011, 06:53
#3
Суппорт ответил, что нагрузка на apache+mysql, мол оперативная память исчерпалась. Интересуется не выросла ли посещаемость, но она осталась примерно на прежнем уровне и глюки были в том числе ночью, когда на сайте трафа точно нет. Блин, ерунда какая-то.
На сайте с 08.06.2007
Offline
110
12 октября 2011, 06:55
#4
qilly, у вас VDS ? дак чего гадаете-то — посмотрите логи!
На сайте с 01.02.2010
Offline
247
12 октября 2011, 06:58
#5
А размер базы не вырос?
На сайте с 20.04.2006
Offline
566
12 октября 2011, 07:44
#6
qilly:
ошибка MySQL query error
какой полный текст ошибки?
На сайте с 28.03.2008
Offline
354
12 октября 2011, 08:26
#7
Dreammaker:
какой полный текст ошибки?
Это и есть полный текст ошибки, данная ошибка чередовалась с ошибкой 500. Хостер ответил, что был всплеск входящего трафика в 3 утра. Говорит может ддос. В 3 утра как-то сомневаюсь…
Да у меня ВДС, логи посмотрю щас. Нет времени и не очень в этом соображаю.
qilly добавил 12.10.2011 в 16:10
Хостер сказал, что это ддос-атака. На фтп не нашел логов именно за вчерашний день. В журнале траффика в панели Paralles нет всплеска входящего трафика. Ээ..
Информацию по ошибкам БД смотрите также здесь: Ошибки БД
Перечень основных ошибок БД и способы их исправления
Итак любая ошибка при обращении к базе сопровождается подробным логом.
Во-первых, будет выдан запрос, вызвавший ошибку:
mySQL query error: SELECT p.*, m.id,m.name,m.mgroup,m.email,m.joined,m.avatar,m.avatar_size,m.posts,m.aim_name, m.icq_number, m.signature, m.website,m.yahoo,m.integ_msg,m.title,m.hide_email,m.msnname, m.warn_level, m.warn_lastwarn, g.g_id, g.g_title, g.g_icon, g.g_dohtml, m.scripts, m.downloads FROM ibf_posts p LEFT JOIN ibf_members m ON (p.author_id=m.id) LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup) WHERE p.topic_id=1 and p.queued != 1 ORDER BY p.pid LIMIT 0, 15
Для администратора, этот запрос не столь важен, как допустим для разработчика модификаций. Так что подробно останавливаться на этом не будем.
Далее следует важная для нас часть, это описание ошибки
mySQL error: Can't open file: 'word.MYD'. (errno: 145)
От сюда мы узнаем, что у нас ошибка 145 с описанием «Can’t open file: ‘word.MYD'». Теперь когда ошибка выяснена обратимся к нашему справочнику ошибок mySQL.
» Error Code 2 (No such file or directory):
Описание: был удален, очевидно администратором, файл данных mySQL, сам файл указывается в описании ошибки.
Что делать: Свяжитесь с администратором хостинга (службой поддержки) и сообщите об этой ошибке, они должны будут восстановить его. Или же попробуйте восстановить базу Вашего форума из бэкапа.
» Error Code 9 (Bad file descriptor):
Описание: данная ошибка, ‘Bad file descriptor or error 9’, означает, что когда Вы пытаетесь открыть таблицу БД, возникает проблема нехватки свободных файловых дескрипторов для mySQL.
Что делать: Если Вы имеете доступ к конфигурированию mySQL, т.е. у Вас на сервере есть /etc/my.cnf файл, то внесите изменения в параметр open_files_limit в разделе safe_mysqld.
Например:
[safe_mysqld] open_files_limit=8192
и перезапустите mySQL.
Если же такой возможности нет, то свяжитесь с Вашим хостером и сообщите об этой ошибке.
» Error Code 28 (No space left on device):
Описание: 28 ошибка одна из самых опасных и означает она, что закончилось место для хранения данных mySQL или же что в директории /tmp Вашего сервера не хватает свободного места.
Что делать:
- Закрыть Ваш форум, дабы не было записи в базу, при добавлении тем/сообщений и т.д.
- Связаться с Ваши хостером (службой поддержки хостинга) и сообщить об этой ошибке.
- Если же у Вас собственный сервер, то Вам необходимо увеличить место, отведенное для хранения данных mySQL, например перенести на новый раздел, и/или изменить расположение /tmp директории в my.cnf
» Error Code 144 (Table is crashed and last repair failed):
Описание: таблица, к которой происходило обращение, разрушилась и последняя попытка ее востановить оказалась безуспешной.
Что делать:
- Обратиться к хостеру и сообщить об ошибке.
- Если же у Вас собственный сервер, Вам необходимо остановить mySQL сервер и запустить комманду для востановления. Когда mySQL остановлен, выполните в shell/telnet/ssh комманду:
myisamchk -r -u имя_пользователя -pпароль имя_базы
где:
имя_пользователя — Ваше имя пользователя базы данных имя_базы
пароль — пароль базы имя_базы. Обратите внимание что пароль нужно указывать сразу после -p без каких-либо разделяющих символов.
имя_базы — база который требуется восстановить.
» Error Code 145 (Table was marked as crashed and should be repaired):
Описание: таблица, к которой происходило обращение, разрушилась и необходимо ее починить.
Что делать: Читаем тут
» Too many connections
Описание: большое количество соединений с базой, подробнее читаем
http://www.mysql.com/doc/T/o/Too_many_connections.html
Что делать:
- Обращаемся к хостеру и сообщаем об ошибке.
- Если мы сами себе хостинг, то можем увеличить количесто максимальных соединений. Изменяем параметр max_connections в файле /etc/my.cnf сервера.
» mySQL server has gone away
Описание: серевер прекратил принимать соединения. Подробнее опять на сайте разработчика:
http://www.mysql.com/doc/G/o/Gone_away.html
http://www.mysql.com/doc/C/o/Common_errors.html
http://www.mysql.com/doc/S/e/Server_parameters.html
http://www.mysql.com/doc/O/p/Option_files.html
http://www.mysql.com/doc/S/H/SHOW_VARIABLES.html
Что делать:
- Ждем некоторое время, возможно хостер просто перезапускает сервер. Если ошибка повторяется длительное время, то следуем указаниям пункта 2.
- Стучимся к хостеру, недовольно сообщаем об ошибке.
- Счастливым обладатели dedicated серверов.
— По умолчанию, сервер закрывает совединение через 8 часов бездействия. Вы можете изменить время простоя параметром wait_timeout в /etc/my.cnf.
— Другая причина получения ошибки ‘mySQL server has gone away’ это посылка Вами »close» для Вашего mySQL соединения и затем попытка выполнения запроса, уже на закрытом соединении. Убьедиться в том что mySQL сервер функционирует можно проверив его mysqladmin для проверки аптайма.
Для этого введите в shell/telnet/ssh:mysqladmin -u root -p version
— Еще одной из причин появлений этой ошибки может быть отправка Вами неверного или слишком большого запроса. Если mysqld получает слишком большой пакет или же неверный пакет, он в целях безопасности закрывает соединение с пользователем. Если Вам необходимо использование больших запросов, Вы можете увеличить этот лимит, запустив mysqld с ключем -O max_allowed_packet=# (по-умолчанию 1M) или опцией via max_allowed_packet в Вашем /etc/my.cnf файле.
Прочие ошибки mySQL, это в основном ошибки при составлении запросов к базе. В этом случае к хостеру обращаться не стоит, а попытаться решить проблему самому или же обратиться в раздел помощи на нашем форуме.
- После переноса вся публичная часть не видна без авторизации по логину и паролю
- При входе в административный интерфейс возникает сообщение об ошибке «Кодировка используемой вами базы данных MySql “utf8”, системе обновлений необходима кодировка “cp1251”. Обратитесь к администратору MySql для выполнения запроса alter database DATABASE_NAME default character set cp1251»
- Зависает переиндексация статических файлов сайта
- На любой странице сайта возникает ошибка:
The script encountered an error and will be aborted. To view extended error messages, enable this feature in .settings.php. - На любой странице сайта возникает ошибка: DB query error. Please try later.
- На сайте возникает ошибка: Mysql connect error [localhost, 127.0.0.1]: Can’t connect to local MySQL server through socket ‘/var/lib/mysqld/mysqld.sock’ (2) (400)
- Возникает ошибка любого MySQL запроса вида: MySQL Query Error: SELECT … FROM … [Got error 28 from storage engine]
После переноса вся публичная часть не видна без авторизации по логину и паролю
Если после переноса вы видите на главной странице вместо новостей форму для авторизации и все пункты меню отмечены значком замка:
… и после авторизации все отображается правильно — перейдите в административную панель Битрикс и пройдите по пути: Настройки (Settings) → Настройки продукта (System settings) → Сайты (Sites) → Список сайтов (List of sites), выберите ваш сайт и проверьте значение поля «Путь к корневой папке веб-сервера для этого сайта (Path to the web server root folder of this site)», скорее всего там указан неправильный путь.
Рекомендуется оставить это поле пустым если вы не используете многосайтовость на разных доменах.
Если у вас возникли сложности, не описанные здесь, напишите нам на support@vmco.ru
При входе в административный интерфейс возникает сообщение об ошибке «Кодировка используемой вами базы данных MySql “utf8”, системе обновлений необходима кодировка “cp1251”. Обратитесь к администратору MySql для выполнения запроса alter database DATABASE_NAME default character set cp1251»
По умолчанию все сервисы виртуальной машины VMBitrix работают в кодировке UTF-8. По сравнению с кодировкой CP1251 (Windows-1251) UTF-8 предоставляет большие возможности по хранению информации на различных языках, подробнее можно узнать в Wikipedia.
Если по каким-либо причинам вы не можете перейти на использование UTF-8 — выполните указанный запрос самостоятельно.
Для этого перейдите в административный раздел Битрикс и пройдите по пути Настройки (Settings) → Инструменты (Tools) → SQL запрос (SQL query), скопируйте и вставьте запрос из сообщения об ошибке и выполните его.
Этот запрос изменяет свойство используемой базы данных, не затрагивая сами данные, и, при необходимости, вы можете вернуть старое значение обратно.
Если у вас возникли сложности, не описанные здесь, напишите нам на support@vmco.ru
Зависает переиндексация статических файлов сайта
При попытке обновить поисковый индекс вашего сайта процесс зависает (длится очень долго и статус уже переиндексированных документов не обновляется). Если производить переиндексацию по отдельным модулям — зависание происходит только при выборе модуля «Статические файлы».
Для решения проблемы необходимо изменить параметры mbstring в файле /etc/php.ini:
mbstring.func_overload = 0 mbstring.internal_encoding = CP1251
и перезапустить web-сервер Apache чтобы новые параметры вступили в силу:
/etc/init.d/apache2 restart
Если у вас возникли сложности, не описанные здесь, напишите нам на support@vmco.ru
На любой странице сайта возникает ошибка:
The script encountered an error and will be aborted. To view extended error messages, enable this feature in .settings.php.
В новом ядре Битрикс, настройка параметров производится в файле bitrix/.settings.php (обратите внимание, что имя файла начинается с точки). Ранее, для этих задач использовался файл bitrix/php_interface/dbconn.php.
По умолчанию, Битрикс скрывает любые сообщения об ошибках, так как это значительно снижает уровень безопасности системы. Поэтому при возникновении любой ошибки вместо нее будет отображаться указанное выше сообщение.
Поэтому первым делом, необходимо войти на сервер (по SSH или sFTP) и отредактировать файл bitrix/.settings.php. В нем следует найти строчку:
'debug' => false,
и изменить значение параметра debug на true, то есть строка должна принять вид:
'debug' => true,
После этого, при обращении к странице с ошибкой, вы увидите полное сообщение об ошибке. После исправления ошибки, не забудьте вернуть параметр debug в изначальное значение.
Болле подробное описание всех параметров файла .settings.php есть на сайте разработчика.
Если у вас возникли сложности, не описанные здесь, напишите нам на support@vmco.ru
На любой странице возникает ошибка:
DB query error. Please try later.
Эта ошибка абсолютно аналогична описанной выше, но возникает только в старом ядре Битрикс. Для включения вывода полного сообшения об ошибке войдите на сервер (по SSH или sFTP) и отредактируйте файл bitrix/php_interface/dbconn.php. В нем найдите строчку:
$DBDebug = false;
и измените значение переменной $DBDebug на true, то есть строка должна принять вид:
$DBDebug = true;
После этого, при обращении к странице с ошибкой, вы увидите полное сообщение об ошибке. После исправления ошибки, не забудьте вернуть параметр $DBDebug в изначальное значение.
Если у вас возникли сложности, не описанные здесь, напишите нам на support@vmco.ru
На сайте возникает ошибка:
Mysql connect error [localhost, 127.0.0.1]: Can’t connect to local MySQL server through socket ‘/var/lib/mysqld/mysqld.sock’ (2) (400)
Данная ошибка означает, что сервер баз данных MySQL не доступен. Это может произойти в ряде случаев и зачастую требуется отдельный анализ ситуации для выявления точной причины. Но в большинстве случаев эта ошибка возникает из-за следующих проблем:
-
Нехватка оперативной памяти.
Если при разработке проекта не рассчитывалась большая нагрузка (со стороны пользователей или объема обрабатываемых данных), или при разработке была допущена ошибка, или параметры MySQL и Apache не оптимальны для проекта, то при всплеске активности может возникнуть переполнение оперативной памяти (RAM). В этом случае, операционная система, для поддержания собственной безопасности, принудительно завершает работу самого объемного процесса (для web-серверов это как правило именно MySQL).
В этом случае, в системном журнале /var/log/syslog и на консоли сервера (доступ к которой можно получить в панели управления vCenter) будет содержаться сообщение вида:
kernel: Out of memory: Kill process 1543 (mysqld) score 146 or sacrifice child
В этом случае, перезагрузите сервер, для освобождения памяти и восстановления работы всех сервисов. Затем привлеките разработчиков для оптимизации скриптов и запросов к БД, для предотвращения возникновения ошибки в будущем. Либо, если оптимизация не представляется возможной, увеличить тарифный план, тем самым увеличить объем доступной памяти.
-
Сервер не может стартовать из-за ошибки в конфигурации.
Как правило это может возникнуть после правки конфигурационного файла my.cnf или обновления системы. В этом случае, следует откатить изменения и перезапустить сервер или отдельно MySQL.
Если у вас возникли сложности, не описанные здесь, напишите нам на support@vmco.ru
Возникает ошибка любого MySQL запроса вида:
MySQL Query Error: SELECT … FROM … [Got error 28 from storage engine]
Ошибка может содержать любой SELECT, INSERT или UPDATE запрос, но при этом обязательно заканчивается уточнением Got error 28 from storage engine. Причиной ошибки является переполнения жесткого диска (HDD)
В этом случае, войдите на сервер по SSH и выполните команду df -h:
# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 9.6G 9.2G 0 100% / tmpfs 250M 0 250M 0% /dev/shm /dev/sda1 118M 102M 9.1M 92% /boot
Основной раздел, в примере /dev/sda2 (так как он наибольший, что видно по колонке Size, и точка монтирования у него — корневая директория Mounted on /) используется на 100%
Для восстановления работы следует удалить более ненужные данные с диска или увеличить дисковое пространство.
Если у вас возникли сложности, не описанные здесь, напишите нам на support@vmco.ru
↑ вернуться к оглавлению
Скачал Бритикс версия Бизнес(файл business_encode_php5.exe).
Устанавливаю. Установилось веб-окружение, запустилось. Потом было создание админа, выбор шаблона. И на следующем этапе выпала ошибка:
Внимание! На данном шаге произошла ошибка установки продукта.
Текст ошибки:
MySQL Query Error: select ID, ATTRIBUTES from b_xml_tree where (ID = 1) and (NAME = ‘КоммерческаяИнформация’) [Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation ‘=’] DB query error. Please try later.
Повторите установку текущего шага. В случае повторения ошибки пропустите шаг.
Эта ошибка наблюдалась под Google Chrome. Зайдя под Оперой я с удивлением обнаружил что в Опере установка падает на другой ошибке:
Проверил несколько раз. В Хроме первая ошибка, в Опере и IE вторая.
Это очень удивительно что запросы к БД зависят от браузера, продолжаем дальше.
В этой статье мы расскажем, из-за чего возникает ошибка «DB query error, please try later» в Bitrix и как её исправить на виртуальном хостинге.
Ошибка DB query error, please try later возникает на CMS Битрикс.
Эта проблема связана с базой данных сайта: к ней поступает слишком много обращений — больше, чем сервер БД может обработать.
Чтобы понять, чем именно вызвана ошибка, нужно посмотреть её полное описание на сайте. Для этого включите debug-режим.
Debug-режим (режим отладки) — режим, который используют разработчики для проверки кода. Он позволяет увидеть полный текст ошибки и исправить её.
В блоках $DBDebug и $DBDebugToFile замените параметр «false» на «true» и нажмите Ok:
При переходе на сайт вы увидите текст ошибки. Он выделен красным цветом:
Где domain.ru — корневая папка сайта.
Кликните клавишу i, чтобы включить режим редактирования, затем в полях $DBDebug и $DBDebugToFile замените параметр «false» на «true»:
Чтобы выйти из режима редактирования, нажмите Esc. Затем введите команду :qw и нажмите Enter:
Для того чтобы освободить место на хостинге, нужно очистить папку /bitrix/backup/. Для этого:
Приветствую форумчане!
При подключении фильтра на странице каталога, возникает ошибка:
<
global $DB;
$IBLOCK_ID = intval($IBLOCK_ID);
$VERSION = CIBlockElement::GetIBVersion($IBLOCK_ID);
$element = new CIBlockElement;
$element->strField = «ID»;
$element->GetList(array(), $arElementFilter, false, false, array(«ID»));
/*
$arPropertyIDs = array();
foreach($arProperties as $arProperty)
<
if(intval($arProperty[‘PROPERTY_ID’]))
$arPropertyIDs[$arProperty[‘PROPERTY_ID’]] = $arProperty[‘PROPERTY_ID’];
>
*/
$q = ‘SEL ECT DISTINCT `PROPERTY_ID` FR OM `b_iblock_section_property` WHERE `SMART_FILTER` = «Y» AND `IBLOCK_ID` = ‘.$IBLOCK_ID;
$db = $DB->Query($q);
$propertyIDs = array();
while($propertyID = $db->fetch()) <
$propertyIDs[] = $propertyID[‘PROPERTY_ID’];
>
if ($VERSION == 2)
$strSql = »
SEL ECT
BEP.*
FR OM
«.$element->sFrom.»
INNER JOIN b_iblock_element_prop_s».$IBLOCK_ID.» BEP ON BEP.IBLOCK_ELEMENT_ID = BE.ID
WHERE 1=1 «.$element->sWhere.»
ORDER BY
BEP.IBLOCK_ELEMENT_ID
«;
else
$strSql = »
SEL ECT
BE.ID IBLOCK_ELEMENT_ID
,BEP.IBLOCK_PROPERTY_ID
,BEP.VALUE
,BEP.VALUE_NUM
FR OM
«.$element->sFrom.»
LEFT JOIN b_iblock_element_property BEP ON BEP.IBLOCK_ELEMENT_ID = BE.ID
AND BEP.VALUE != »».(!empty($propertyIDs) ? » AND BEP.IBLOCK_PROPERTY_ID IN («.implode(‘, ‘, $propertyIDs).»)» : «»).»
WHERE 1=1 «.$element->sWhere.»
ORDER BY
BEP.IBLOCK_ELEMENT_ID
«;
$rs = new CIBlockPropertyResult($DB->Query($strSql));
$rs->setIBlock($IBLOCK_ID);
$rs->setMode($extMode);
Источник
Bitrix24 mysql query error
Курс предназначен для организаций, предоставляющих услуги хостинга и желающих получить компетенцию Рекомендуемый хостинг.
В курсе рассматриваются требования платформы Bitrix Framework к хостингу, вопросы установки, настройки продукта а также вопросы инструментов и методов оптимизации серверов и баз данных для работы с системой
Для хостеров не является обязательным, но рекомендуется изучение курсов Контент-менеджер и Администратор. Базовый для получения более полного представления о возможностях системы и способах работы с ней.
Рекомендуется ознакомиться с опытом настройки и тестирования серверов в блоге Дениса Шаромова, а так же с отзывами клиентов о хостингах в группе Черный и белый список хостингов социальной сети компании «1С-Битрикс».
Если ваш хостинг на Windows, то вам может быть полезна группа 1С-Битрикс на платформе Windows Server 2008 в социальной сети сайта «1С-Битрикс». В ней пользователи делятся опытом работы системы на IIS 7.
Тесты и сертификат
После изучения курса вам будет предложено пройти тесты на сертификацию. При успешной сдаче линейки тестов на странице Моё обучение можно просмотреть результат обучения и загрузить сертификат в формате PDF.
Также Вы можете поделиться ссылкой на страницу со своими сертификатами. Для этого на странице Моё обучение отметьте опцию Разрешить публичный доступ к резюме студента и скопируйте ссылку на страницу резюме . Страница с Вашим резюме будет доступна всем, кому Вы отправите ссылку на неё.
Комментарии к урокам
На каждой странице курса авторизованный на сайте посетитель может дать комментарий к содержимому страницы. Комментарий — не форум, там не ведётся обсуждений или разъяснений. Это инструмент для сообщений нам об ошибках, неточностях. Для отправки комментария воспользуйтесь расположенной в правом нижнем углу окна браузера кнопкой: |
У нас часто спрашивают, сколько нужно заплатить
Курс полностью бесплатен. Изучение курса, прохождение итоговых тестов и получение сертификатов — ничего из этого оплачивать не нужно.
Ещё у нас есть Академия 1С-Битрикс, где можно обучиться на платной основе на курсах нашей компании либо наших партнёров.
Баллы опыта
В конце каждого урока есть кнопка Прочитано! . При клике на неё в Вашу итоговую таблицу опыта добавляется то количество баллов, которое указано в прочитанном После нажатия кнопки Прочитано! появится
окно подтверждения:
уроке.
Периодически мы заново оцениваем сложность уроков, увеличивая/уменьшая число баллов, поэтому итоговое количество набранных Вами баллов может отличаться от максимально возможного. Не переживайте! Отличный результат — это если общее число набранных Вами баллов отличается от максимального на 1-2%.
Скачать материалы курса в формате EPUB. Файлы формата EPUB Чем открыть файл на
Android:
EPUB Reader
CoolReader
FBReader
Moon+ Reader
eBoox
iPhone:
FBReader
CoolReader
iBook
Bookmate
Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome
iOS
Marvin for iOS
ShortBook
Linux:
Calibre
FBReader
Cool Reader
Okular обновляются периодически, поэтому возможно некоторое отставание их от онлайновой версии курса. Версия файла от 03.11.2022.
Источник
Ошибка выгрузки MySQL Query Error
Добрый день!
Выгрузка номенклатуры на сайт выдает ошибку MySQL Query Error: INS ERT INTO b_xml_tree. Спецы по сайту указывают на то, что эта ошибка указывает на несколько одновременно запущенных процессов обмена: «Ошибка означает что отсутствовала таблица во время попытки записи в нее.
Складывается ощущение что Вы запускаете два импорта разом. ну или первый импорт не успевает отработать к тому времени когда Вы запускаете второй. В этом случае второй импорт удаляет таблицу чтобы в нее загрузить новые данные. А первый импорт пытается произвести в нее запись.»
ТП Битрикса, на подобное же обращение (моего коллеги с такой же проблемой) отвечает аналогичным образом.
Подскажите, как такое может получиться, если запускаю только я и точно не два раза. По расписанию выгрузку отключила, так что наложиться тут ничего не может.
Может кто сталкивался с подобным? Пример ошибки в логах:
Бывает с тестовой базы продолжает обмен работать.
А ещё можно попробовать удалить файлы таблицы и запустить обмен. Бывает файл таблицы отсутствует, а файл индекса остается, что mysql считает некорректной ситуацией и не дает создать файл таблицы.
Цитата |
---|
baltika написал: В момент запуска обмена другие регламентные задания с сайтом не выполняются? |
Цитата |
---|
Алексей Беспалов написал: Бывает с тестовой базы продолжает обмен работать. |
Если в тестовой базе выгрузка по расписанию отключена, в ручную с тестовой базы давно уже обмен не запускался, то этот вариант снимается?
Цитата |
---|
Алексей Беспалов написал: А ещё можно попробовать удалить файлы таблицы и запустить обмен. Бывает файл таблицы отсутствует, а файл индекса остается, что mysql считает некорректной ситуацией и не дает создать файл таблицы. |
Если точно не работает обмен из тестовой конечно снимается.
Можно к хостерам обратится или самим подключится к серверу по SSH или FTP и посмотреть.
Цитата |
---|
Татьяна Гладкая написал: Есть импорт в Я.Маркет с сайта |
Цитата |
---|
Евгений Жуков написал: Нет, я спрашивал про xml-импорт НА сайт. |
Цитата |
---|
Евгений Жуков написал: проблема строго регулярная или эпизодическая? |
Цитата |
---|
Татьяна Гладкая написал: На сайт еще из 1С выгружаются статусы талонов по ремонту оборудования. Но они выгружаются через Highload-блоки и никак не связаны с товарами. Так же они льются в тойже выгрузке: сначала выгружаются товары, затем талоны на ремонт. исключительно последовательно. Это может повлиять? |
Цитата |
---|
Татьяна Гладкая написал: Периодическая. При чем не предсказуемо периодическая! |
Цитата |
---|
Евгений Жуков написал: ставить отладку с трассировкой и ждать ошибки |
на стороне 1С это делается?
Битрикс мне написал: «Поставьте прокси-сервер fiddler ( http://www.fiddler2.com/fiddler2/ ) на компьютер с 1C с которого производится выгрузка.
Откройте fiddler и включите логирование трафика по https — Tools > Fiddler Options > HTTPS > Decrypt HTTPS traffic option, если ваш сайт работает по протоколу https. После запустите выгрузку. При этом ваши хиты отобразятся в fiddler, сохраните сессию из fiddler в формате saz и приложите её к обращению.»
Вы тоже об этом?
Цитата |
---|
Юра Козлов написал: Татьяна Гладкая Нашли какоето решение? такаяже проблема |
Цитата |
---|
Юра Козлов написал: Нашли какоето решение? такаяже проблема |
Добрый день! Да, методом наблюдения поняла.
Суть действительно та: две параллельные выгрузки одновременно. Как это получалось:
1. Исходно в 1С стоит выгрузка ИЗМЕНЕНИЙ. Затем я меняю на «ПОЛНАЯ ВЫГРУЗКА» http://joxi.ru/823L8x3iJM1EdA и нажимаю «Записать». При перезаписи узла обмена на полную выгрузку, как оказалось, эта полная выгрузка запускалась в фоновом режиме. А я, не зная этого, запускала ее кнопкой «Выполнить обмен». Получалось две параллельные выгрузки.
2. Это когда 1С-ник вносил какие-то изменния в конфигурацию 1с или его работы как-то затрагивали изменение или пересохранение узла обмена. Обмен автоматом запускался в фоном режиме. Если я, в это время запускала сама, опять получалось наложение выгрузок.
3. Еще один возможный вариант это когда стоит выгрузка по расписанию, но человек не зная этого или забыв, заходит и запускает сам выгрузку. У нас такого варианта не было. Но тоже может стать причиной наложения выгрузок.
После того как обновили модуль обмена 1С на 7.х проблема указанная в п.1 ушла, т.е. автоматом при сохранении выгрузка не запускается в фоновом режиме.
Источник
Adblock
detector
Обновлено 30.05.2018
Всех вновь приветствую на страницах своего блога, продолжаем заниматься уроками по 1С битрикс. На днях у меня один физический сервер переезжал в другой цод, товарищи из данного цода начали выполнять работы раньше и не дали возможности правильно потушить виртуальные машины. После переезда на одном из сайтов я увидел вот такую ошибку db query error please try later, давайте рассмотрим как ее решить и на будущее знать, что делать, на это у вас уйдет не более 5 минут.
Решаем ошибку db query error
Ранее у меня была установка bitrix на centos. Причин у данной ошибки может быть несколько и мы их рассмотрим все. Для начала приведу пример скриншота, как выглядит ошибка db query error please later, согласитесь не очень информативно.
Закончилось свободное место
Да такое бывает у вас может закончиться место на локальном диске и Centos просто не может уже куда либо писать, и вы ловите эту ошибку. Для того, чтобы проверить есть ли у вас свободное пространство вам необходимо подключиться к серверу по ssh протоколу и ввести вот такую команду.
Вы получите сводку по разделам, в моем примере места свободного достаточно.
Повредилась база данных Mysql
Вторая причина, уже посерьезнее и она кроется в том, что у вас поломалась табличка или если угодно база данных Mysql. Чтобы это выяснить вам, потребуется включить дебагер. Нам нужно включить один параметр вот в этом файле.
/bitrix/php_interface/dbconn.php
Для того, чтобы его отредактировать я вам советую зайти по 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С битрикс.
Обратите внимание: при редактировании файлов баз данных сторонними программами (Sublime Text, Notepad++ и др.) всегда учитывайте кодировку в которой открывается и сохраняется .sql файл базы данных. В случае допуска ошибки могут проявляться малопредсказуемые последствия работы сайта.
Duplicate entry ‘1’ for key ‘PRIMARY’
Требуется заменить во всей базе данных INSERT INTO на REPLACE INTO.
Multiple primary key defined
Убедитесь, что в базе в которую производится импорт нет каких-либо данных (база должна быть полностью очищена).
[BitrixMainDBSqlQueryException] Mysql query error: Illegal mix of collations for operation ‘UNION’ (400)
Проблема с разными кодировками таблиц (collation utf8_unicode_ci и utf8_general_ci).
Требуется заменить DEFAULT CHARSET=utf8 на DEFAULT CHARSET=utf8 COLLATE utf8_unicode_ci во всей базе данных.
MySQL Query Error: SELECT DISTINCT BE.ID as ID … which is not in SELECT list; this is incompatible with DISTINCT
Необходимо очистить содержимое папки /bitrix/tmp/
[BitrixMainDBConnectionException] Mysql connect error [localhost]: (1045) Access denied for user ‘***’@’localhost’ (using password: YES) (400)
Неверные данные для подключения к базе данных. Проверьте название базы данных, имя назначенного пользователя и его пароль в панели хостинга и отредактируйте данные в файлах /bitrix/php_interface/dbconn.php и /bitrix/.settings.php
Переменная sql_mode в MySQL должна быть пустая, текущее значение…
/bitrix/php_interface/after_connect_d7.php
добавить $connection->queryExecute(«SET sql_mode=»»);
/bitrix/php_interface/after_connect.php
добавить $DB->Query(«SET sql_mode=»»);
Ошибка innodb_strict_mode=ON, требуется OFF или Ошибка! Переменная sql_mode в MySQL должна быть пустая, текущее значение…
/bitrix/php_interface/after_connect.php
$DB->Query(«SET sql_mode=»»);
$DB->Query(«SET innodb_strict_mode=0»);
/bitrix/php_interface/after_connect_d7.php
$connection = BitrixMainApplication::getConnection();
$connection->queryExecute(«SET sql_mode=»»);
$connection->queryExecute(«SET innodb_strict_mode=0»);