MySQL server has gone away

Причины:

  • Сервер закрыл соединение по таймауту.
  • Превышен разрешенный хостингом объем SQL запроса

Почему раньше этого не происходило?

В большинстве случаев данная ошибка встречается в объемных каталогах с большим количеством категорий и товаров. Связано это с упрощенным механизмом кэширования данных движка и сохранения их в базу. 
Такой подход актуален для маленьких магазинов но совершенно не рационален для больших. При большом объеме каталога рекомендуется использовать сервер Memcache для кэширования блоков информации в память сервера.

Чем больше данных в магазине, тем более длинный SQL запрос может получиться. 

Решить проблему можно тремя способами способами:

1. Наиболее простой, но не всегда доступный в связи с ограничения на хостинге
В файле движка config.ini установите директиву SQL_BIG_SELECTS = 1
 

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


2. В файле конфигурации MySQL /etc/my.cnf на хостинге необходимо изменить значение директивы max_allowed_packet = 128M

В некоторых случаях может потребоваться установить большее значение директивы wait_timeout = 600

После внесения изменение перезагрузите веб-сервер.

3. В настройках CMS настройте режим кэширования с помощью Memcache сервера или отключите кэширование в базу.