Это ошибка, которую я внезапно получаю.
Additional uncaught exception thrown while handling exception.
Original
PDOException: SQLSTATE[70100]: Unknown error: 1317 Query execution was interrupted...my query
Additional
PDOException: SQLSTATE[HY000]: General error: 2006 MySQL server has gone away...my query
После некоторого исследования кажется, что пользовательский модуль, который я создал, пытается выполнить слишком большой запрос. Решение, которое работает для многих людей, таково:
- Откройте my.ini
- Измените «max_allowed_packet» с «1 м» на «16 м» (или больше)
- Сохраните my.ini и перезапустите MySQL
Однако я нахожусь на общем сервере, поэтому я не могу редактировать my.ini, и хотя мой провайдер подтвердил мне, что значение установлено в 1M, они не будут его увеличивать.
Я также попытался добавить это: ini_set('mysqli.reconnect', 'on');
к settings.php
. Это не решило проблему.
Кто-нибудь знает другое решение или обойти?
Спасибо.
Ответы:
Компании совместного хостинга не отдают привилегию SUPER . Если у вас есть, вы можете легко установить max_allowed_packet на 512M, просто запустив это:
Перезапуск не требуется. Затем все входящие соединения после этого могут иметь пакет 512M .
Ты не сможешь это сделать:
потому что вы получаете
Единственная альтернатива, о которой я могу подумать, - это переключиться на Amazon EC2 и установить там MySQL. Таким образом, вы можете свободно редактировать my.cnf / my.ini и иметь привилегию SUPER .
источник
Я попросил моего провайдера увеличить стоимость, но они не будут. Я понимаю, почему они занимаются бизнесом и хотят, чтобы я платил 29,99 в месяц за выделенный сервер, а не 4,99 за общий сервер.
Однако есть решение: определить слишком большой запрос и разбить его на две или более частей. Я разделил свой проблемный запрос пополам: проблема решена. Неэффективно - да - но это лучше, чем мой сайт, не работающий вообще или вынужденный доплачивать.
источник
TEXT/BLOB fields
кода вместо джерри фальсификации.Проблема в том, что
max_allowed_packet
вы устанавливаете его с большим значением.Как решить эту проблему (если вы находитесь в Windows и используете xamp, найдите файл my.ini)
Перейдите в xampp \ mysql \ bin
Откройте my.ini
Измените «max_allowed_packet» с «1m» на «16m».
Сохраните my.ini.
Теперь перезапустите MySql через панель управления XAMPP.
Нашел это решение здесь. http://minorpoint.blogspot.com/2007/09/mysql-server-has-gone-away.html
источник