- MySQL server has gone away — решение проблемы, один из вариантов
- Продукты
- Управление сайтом
- Битрикс24
- Интернет-магазин + CRM
- Решения
- Для интернет-магазинов
- Каталог готовых решений
- Внедрение
- Выбрать партнера
- Проверить партнера
- Стать партнером
- MySQL server has gone away — решение проблемы, один из вариантов
- Продукты
- Управление сайтом
- Битрикс24
- Интернет-магазин + CRM
- Решения
- Для интернет-магазинов
- Каталог готовых решений
- Внедрение
- Выбрать партнера
- Проверить партнера
- Стать партнером
- Частые вопросы
- Частые вопросы
MySQL server has gone away — решение проблемы, один из вариантов
Недавно столкнулся с такой проблемой и решил здесь поделиться решением, которое нашел в интернете .
Вкратце опишу, где встретилась такая ошибка: на сайте есть модуль парсера, сначала он собирает данные, а затем загружает их в инфоблоки. Так вот малое количество данных успешно загружалось, а вот большое на строке с CIBlockElement::GetList выдавало ошибку «MySQL server has gone away».
Не сразу понял в чем дело, но в итоге разобрался — MySQL сбрасывал соединение, т.к. долго не было подключения к базе после подключения к серверу (или как-то так, не силен в терминологии).
В общем решение вот такое — в файле «bitrix/php_interface/after_connect.php» нужно добавить строку:
$DB->Query("SET wait_timeout=28800");
Число в скобках — это количество секунд ожидания подключения.
О, наконец таки я нашел решение этой проблемы. у меня КП битрикс 24 коробочная версия, в один прекрасный момент, оказался бэкапиться средствами самого портала. скрипт бэкапа вываливался с ошибкой MySQL server has gone away. две с половиной недели бодания с саппортом, ни к чему не привели. саппорт в итоге вообще сказал что это не их проблема, типа решайте сами. при этом mysqldump отлично создавал полный бамп базы.
на своп не как-то не обращал внимания, так как сервер никогда не забивал доступные ему 2 гига. даже при запуске скрипта бэкапа, немного выползал за гиг. когда подключил своп (оказалось что у свопа сменился UUID и он тупо не понтировался при старте), то оказалось что при работе скрипта, сервер нехило так залазит в своп. по истине в битриксе работают марсиане.
Зайцев Артемий, О, наконец таки я нашел решение этой проблемы. у меня КП битрикс 24
коробочная версия, в один прекрасный момент, оказался бэкапиться
средствами самого портала. скрипт бэкапа вываливался с ошибкой MySQL
server has gone away. две с половиной недели бодания с саппортом, ни к
чему не привели. саппорт в итоге вообще сказал что это не их проблема,
типа решайте сами. при этом mysqldump отлично создавал полный бамп базы.
на своп не как-то не обращал внимания, так как сервер никогда не
забивал доступные ему 2 гига. даже при запуске скрипта бэкапа, немного
выползал за гиг. когда подключил своп (оказалось что у свопа сменился
UUID и он тупо не понтировался при старте), то оказалось что при работе
скрипта, сервер нехило так залазит в своп. по истине в битриксе работают
марсиане.
Роман Козин , виртуальная машина Битрикса так настроена, что под буферы и кеши выделено определенное гарантированное количество памяти. Причем эти настройки меняются автоматически, когда вы меняете объем памяти и перезагружаете сервер.
Но если вы посмотрите графики munin на любом действующем сайте, вы увидите что виртуальная машина регулярно чуть-чуть использует свап-диск и в этом нет ничего страшного.
Зайцев Артемий, в использовании свапа нет ничего хорошего. он очень замедляет работу. что собственно логично. в идеале, свап не должен использоваться вообще. он должен быть только для того, что бы в случае непредвиденного повышения нагрузки, сервер не ушел в анабиоз выжрав всю память.
на счет автодостройки bitrix env я в курсе. пришлось допиливать ее кастомными конфигами, что бы оно не выжирало бесконтрольно память с залезанием в своп.
Козин Роман написал: на счет автодостройки bitrix env я в курсе. пришлось допиливать ее кастомными конфигами, что бы оно не выжирало бесконтрольно память с залезанием в своп. |
Поделитесь конфигами
Хмелёв Борис, А тут бесполезно делиться, все зависит от ресурсов сервера и нагрузок. Основной фактор на жор памяти оказывает параметр innodb_buffer_pool_size. В докумеентации рекомендуется устанавливать его в 70 — 80% от общей RAM на сервере. Но тут нужно еще учитывать, что если в БД находится на том же сервере где и сам битрикс с apache и прочими сервисами, то в зависимости от нагрузки нужно учитывать и их потребности. Но исходя из моей практики, параметр innodb_buffer_pool_size на высоко нагруженных базах, должен быть не меньше чем размер используемой БД. Если размер БД 15 гигов, то и этот параметр желательно делать не меньше 15 гигов. Но опять же все индивидуально, если эти ваши 15 гигов использует 1,5 человека, то оно нормально будет работать и на двух гигах RAM
Еще полезно позапускать mysqltuner, и следать его рекомендациям. Собственно функционал этого тюнера имеется и в адмнке битрикса.
Целый день не могу проблему решить, все говорят о параметрах в php.ini и в my.conf, но в моем случае это ни к чему не приводит. В логах так же инфы нет. Может кто-то сталкивался с подобным и есть альтернативные варианты решения?
Спасибо.
У меня такой фокус не прокатил. Тоже #2006 — MySQL server has gone away на запросе методом CIBlockElement::getList()
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».
Продукты
Управление сайтом
Битрикс24
Интернет-магазин + CRM
Решения
Для интернет-магазинов
Каталог готовых решений
Внедрение
Выбрать партнера
Проверить партнера
Стать партнером
1С-Битрикс http://www.1c-bitrix.ru Общие вопросы info@1c-bitrix.ru Приобретение и лицензирование продуктов : sales@1c-bitrix.ru Маркетинг/мероприятия/PR marketing@1c-bitrix.ru Партнерская программа partners@1c-bitrix.ru Мы работаем с 10:00 до 19:00 по московскому времени. Офис в Москве 127287 Россия Московская область Москва 2-я Хуторская улица дом 38А строение 9 Офис в Калининграде +7 (4012) 51-05-64 Офис в Калининграде 236001 Россия Калининградская область Калининград Московский проспект 261 Офис в Киеве ukraine@1c-bitrix.ru Телефон в Киеве +3 (8044)221-55-33 Офис в Киеве 01033 Украина Калининградская область Киев улица Шота Руставели 39/41 офис 1507
© 2001-2023 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом. Политика конфиденциальности
MySQL server has gone away — решение проблемы, один из вариантов
Недавно столкнулся с такой проблемой и решил здесь поделиться решением, которое нашел в интернете .
Вкратце опишу, где встретилась такая ошибка: на сайте есть модуль парсера, сначала он собирает данные, а затем загружает их в инфоблоки. Так вот малое количество данных успешно загружалось, а вот большое на строке с CIBlockElement::GetList выдавало ошибку «MySQL server has gone away».
Не сразу понял в чем дело, но в итоге разобрался — MySQL сбрасывал соединение, т.к. долго не было подключения к базе после подключения к серверу (или как-то так, не силен в терминологии).
В общем решение вот такое — в файле «bitrix/php_interface/after_connect.php» нужно добавить строку:
$DB->Query("SET wait_timeout=28800");
Число в скобках — это количество секунд ожидания подключения.
У меня такой фокус не прокатил. Тоже #2006 — MySQL server has gone away на запросе методом CIBlockElement::getList()
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».
Продукты
Управление сайтом
Битрикс24
Интернет-магазин + CRM
Решения
Для интернет-магазинов
Каталог готовых решений
Внедрение
Выбрать партнера
Проверить партнера
Стать партнером
1С-Битрикс http://www.1c-bitrix.ru Общие вопросы info@1c-bitrix.ru Приобретение и лицензирование продуктов : sales@1c-bitrix.ru Маркетинг/мероприятия/PR marketing@1c-bitrix.ru Партнерская программа partners@1c-bitrix.ru Мы работаем с 10:00 до 19:00 по московскому времени. Офис в Москве 127287 Россия Московская область Москва 2-я Хуторская улица дом 38А строение 9 Офис в Калининграде +7 (4012) 51-05-64 Офис в Калининграде 236001 Россия Калининградская область Калининград Московский проспект 261 Офис в Киеве ukraine@1c-bitrix.ru Телефон в Киеве +3 (8044)221-55-33 Офис в Киеве 01033 Украина Калининградская область Киев улица Шота Руставели 39/41 офис 1507
© 2001-2023 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом. Политика конфиденциальности
Частые вопросы
Если проблема останется — обратитесь к администратору хостинга.
Вам необходимо существенно увеличить его, например, до 64000.
Для решения проблемы воспользуйтесь опцией mysqldump: —compatible=mysql40
Установите значение параметра NLS_LANG, например, в AMERICAN_AMERICA.CL8MSWIN1251
Значение параметра Вы можете прописать в реесте Windows, в ветке HLM/SOFTWARE/ORACLE
Обратитесь за решением данной проблемы к администратору хостинга.
2. Проверьте значения, отвечающие за кодировку БД: character_set, или, для версий MySQL 4.1 и выше, character_set_server и character_set_database. При использовании кодировки, отличной от cp1251 (кириллица), например, latin1, сортировка по строкам, содержащим символы кириллицы, будет производиться некорректно. Проверить это можно выполнив запрос к БД
Для решения проблемы установить в файле /bitrix/php_interface/after_connect следующие строки
Если указанные действия не помогают, то выполните перенос системы (установку) еще раз, создавая дамп БД в кодировке cp1251 и создав новую БД тоже в кодировке cp1251.
Вам необходимо из значения для переменной sql-mode убрать STRICT_TRANS_TABLES.
1 вариант: изменение конфигурации сервера через my.cnf. Например,
sql-mode=»NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION» |
sql-mode=»STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION» |
2 вариант: если у Вас нет доступа к конфигурационным файлам MySQL-сервера, попробуйте в /bitrix/php_interface/after_connect.php добавить строку:
Подробнее на официальном сайте:
Необходимо дополнительно назначить права на LOCK TABLES для данного пользователя базы данных.
После этого обновите страницу: на экране появится текст ошибки. Передайте его в службу нашу поддержки.
Также рекомендуем вам установить следующие значения для MySQL в файле my.cnf:
key_buffer = 64M max_allowed_packet = 8M table_cache = 256 sort_buffer_size = 8M read_buffer_size = 1M |
Если какие-то из рекомендуемых значений меньше установленных сейчас, оставьте эти значения прежними.
Обратитесь к системному администратору Вашего сервера для решения проблемы.
Для решения проблемы в окне SQL-запроса выполните
repair table b_search_content_stem |
b_search_content_stem — имя неработающей таблицы.
Есть возможность выполнить восстановление всех таблиц при неработающем сайте. Для этого надо знать логин и пароль к базе данных, передать их на страницу проверки.
Значения db_login и db_password берутся из dbconn.php
Можно узнать их через ftp.
Частые вопросы
Если проблема останется — обратитесь к администратору хостинга.
Вам необходимо существенно увеличить его, например, до 64000.
Для решения проблемы воспользуйтесь опцией mysqldump: —compatible=mysql40
Установите значение параметра NLS_LANG, например, в AMERICAN_AMERICA.CL8MSWIN1251
Значение параметра Вы можете прописать в реесте Windows, в ветке HLM/SOFTWARE/ORACLE
Обратитесь за решением данной проблемы к администратору хостинга.
2. Проверьте значения, отвечающие за кодировку БД: character_set, или, для версий MySQL 4.1 и выше, character_set_server и character_set_database. При использовании кодировки, отличной от cp1251 (кириллица), например, latin1, сортировка по строкам, содержащим символы кириллицы, будет производиться некорректно. Проверить это можно выполнив запрос к БД
Для решения проблемы установить в файле /bitrix/php_interface/after_connect следующие строки
Если указанные действия не помогают, то выполните перенос системы (установку) еще раз, создавая дамп БД в кодировке cp1251 и создав новую БД тоже в кодировке cp1251.
Вам необходимо из значения для переменной sql-mode убрать STRICT_TRANS_TABLES.
1 вариант: изменение конфигурации сервера через my.cnf. Например,
sql-mode=»NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION» |
sql-mode=»STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION» |
2 вариант: если у Вас нет доступа к конфигурационным файлам MySQL-сервера, попробуйте в /bitrix/php_interface/after_connect.php добавить строку:
Подробнее на официальном сайте:
Необходимо дополнительно назначить права на LOCK TABLES для данного пользователя базы данных.
После этого обновите страницу: на экране появится текст ошибки. Передайте его в службу нашу поддержки.
Также рекомендуем вам установить следующие значения для MySQL в файле my.cnf:
key_buffer = 64M max_allowed_packet = 8M table_cache = 256 sort_buffer_size = 8M read_buffer_size = 1M |
Если какие-то из рекомендуемых значений меньше установленных сейчас, оставьте эти значения прежними.
Обратитесь к системному администратору Вашего сервера для решения проблемы.
Для решения проблемы в окне SQL-запроса выполните
repair table b_search_content_stem |
b_search_content_stem — имя неработающей таблицы.
Есть возможность выполнить восстановление всех таблиц при неработающем сайте. Для этого надо знать логин и пароль к базе данных, передать их на страницу проверки.
Значения db_login и db_password берутся из dbconn.php
Можно узнать их через ftp.