Mysql server has gone away что делать. "Ошибки" программистов: MySQL server has gone away на хостинге

От Microsoft является одним из самых популярных браузеров, так как он установлен на каждом компьютере под управлением Windows. При том, что значительное количество пользователей предпочитает пользоваться другими продуктами, например, Google Chrome, Opera , Mozilla Firefox и так далее, IE всё также держит свои позиции, занимая особенное место на рынке. Помимо обычных функций браузера, Internet Explorer играет свою роль в работе операционной системы Windows . Так, в зависимости от текущей версии IE на вашем ПК, некоторые службы, компоненты системы и утилиты могут работать некорректно. В этой статье подробно рассмотрим, как узнать версию Internet Explorer. Давайте разбираться. Поехали!

О том, как узнать, актуален ли ваш просмотрщик

Чтобы узнать текущую версию браузера, запустите IE и щёлкните по иконке параметров в правом верхнем углу окна. Если иконка шестерёнки отсутствует, нажмите клавишу Alt и выберите «Справка». Также в более старых версиях есть отдельная вкладка «Справка». В появившемся меню кликните по пункту «О программе». После этого появится окно, содержащее всю необходимую информацию о браузере.

Распространенный для Windows-приложений способ

Второй способ ещё проще. Кликните по ярлычку правой кнопкой мыши и выберите в меню «Свойства». Далее нажмите на пункт «Расположение фала». После того, как вы попадёте в папку с исполняемым файлом, перейдите уже к его свойствам, при помощи правой кнопки мыши. В появившемся окне зайдите на вкладку «Подробно». В пункте «Версия» вы найдёте всю необходимую информацию.

В свойствах exe-файла можно узнать необходимую информацию

Номер версии состоит из нескольких частей - чисел, разделённых точками. Обращать внимание стоит только на первые цифры номера. Все остальные цифры показывают различные незначительные обновления , исправления и прочее.

Если у вас установлена операционная система Windows 10, не огорчайтесь. Хотя браузером по умолчанию является новый продукт от Microsoft - Edge, Internet Explorer никуда не делся. Найти его можно через поиск Windows, либо в Microsoft Edge - там есть специальное меню, в котором вы найдёте кнопку для запуска IE. Обратите внимание, что Windows 10 имеет последний Интернет Эксплорер, при этом новые версии больше не будут выходить, поскольку Microsoft решили развивать свой новый продукт - Edge.

Теперь, при необходимости, вы легко сможете узнать версию Интернет Эксплорера. Применяйте наиболее удобный для вас способ из предложенных. Пишите в комментариях, помогла ли вам статья решить возникшую проблему, и оставляйте своё мнение о браузерах от Microsoft.

SpoilerTarget">Спойлер

A.2.2 Ошибка MySQL server has gone away

Все изложенное в данном разделе относится также и к родственной ошибке Lost connection to server during query.
Наиболее часто ошибка MySQL server has gone away возникает в результате тайм-аута соединения и его закрытия сервером. По умолчанию сервер закрывает соединение по прошествии 8 часов бездействия. Можно изменить лимит времени, установив при запуске mysqld переменную wait_timeout.
Другой распространенной причиной получения ошибки MySQL server has gone away является выдача команды "закрытия" на соединении MySQL с последующей попыткой выполнить запрос на закрытом соединении.
Если это получено в скрипте, то достаточно просто повторить запрос от клиента, чтобы соединение автоматически восстановилось.
Обычно в этом случае выдаются следующие коды ошибки (какой из них вы получите, зависит от ОС
Код ошибки Описание
CR_SERVER_GONE_ERROR Клиент не может послать запрос серверу.
CR_SERVER_LOST Клиент не получил ошибки при передаче запроса серверу, но он не получил также полного ответа (или хоть какого-то ответа) на запрос.
Ошибка будет также выдана, если кто-нибудь уничтожит выполняющийся поток посредством kill номерпотока.
Проверить, что MySQL на ходу, можно, запустив mysqladmin version и изучив время работы (uptime). Если проблема в аварийном завершении mysqld, то необходимо сосредоточиться на поиске причины аварии. В этом случае следует сначала проверить, не будет ли уничтожен MySQL снова при повторном задании запроса (see section ).
Эти ошибки будут также выдаваться при посылке серверу неверного или слишком длинного запроса. Если mysqld получает неправильный или слишком большой пакет, то сервер предполагает, что с клиентом что-то не так, и закрывает соединение. Если необходимо выполнять объемные запросы (например, при работе с большими столбцами типа BLOB), можно увеличить предельный размер запроса, запустив mysqld с опцией -O max_allowed_packet=# (по умолчанию 1 Mб). Дополнительная память выделяется по требованию, так что mysqld будет использовать больше памяти только в случае, когда выдан большой запрос или когда mysqld должен возвратить большую строку результата!
Если у вас возникнет желание сделать отчет об ошибке по этой проблеме, то не забудьте включить в него следующие сведения:

  • Информацию о том, упал MySQL или нет (это можно определить по файлу hostname.err (see section A.4.1 Что делать, если работа MySQL сопровождается постоянными сбоями).
  • Если определенный запрос уничтожает mysqld, а используемые в нем таблицы перед выполнением запроса проверялись с помощью CHECK TABLE, то желательно составить контрольный тест (see section E.1.6 Создание контрольного примера при повреждении таблиц).
  • Значение переменной wait_timeout в сервере (это значение выдает mysqladmin variables).
  • Информацию о том, пробовали ли вы запускать mysqld с --log и проверять, появляется ли выданный запрос в журнале.

Ошибка MySQL Server Has Gone Away (error 2006) может возникнуть в двух случаях.

Таймаут соединения

Наиболее распространенная проблема: таймаут соединения, в результате чего сервер его закрывает. Решение весьма тривиальное — увеличение лимита времени wait_timeout в файле конфигурации my.cnf . Для этого в Debian нужно выполнить:

Sudo nano /etc/mysql/my.cnf

# Открытие файла настроек MySQL

Затем установить тайм-аут ожидания:

Wait_timeout = 600

# Время ожидания в секундах, можно установить вплоть до 28800 с (8 часов)

Не забудьте перезагрузить базу:

Sudo /etc/init.d/mysql restart

Иногда, при выполнении длительных запланированных задач, также может появиться ошибка MySQL Server Has Gone Away все из-за того же таймаута соединения. При этом лимит времени не получится существенно увеличить (максимум до нескольких часов), так как это может привести к заполнению буфера ожидающими соединениями.

Поэтому лучше проверить соединение и, при необходимости, переподключиться.

$link = mysql_connect("localhost","root","root"); # Здесь будут cron jobs if(!mysql_ping($link)) $link = mysql_connect("localhost","root","root", true);

# Подключение БД и переподключение при необходимости

Большой или некорректный пакет

Вторая распространенная проблема: сервер получает большой или некорректный пакет и отклоняет его. В этом случае сервер считает, что проблема на стороне клиента и закрывает соединение. Так что для решения нужно увеличить лимит на максимальный размер пакета все в том же файле конфигурации:

Max_allowed_packet = 64M …

# Увеличение лимита размера входящего пакета, в МБ

Также не забудьте перезагрузить базу данных.

Самое главное

После того, как устраните ошибку MySQL Server Has Gone Away, поиграйтесь с параметрами wait_timeout и max_allowed_packet для получения оптимальных лимитов.

Все изложенное в данном разделе относится также и к родственной ошибке Lost connection to server during query .

Наиболее часто ошибка MySQL server has gone away возникает в результате тайм-аута соединения и его закрытия сервером. По умолчанию сервер закрывает соединение по прошествии 8 часов бездействия. Можно изменить лимит времени, установив при запуске mysqld переменную wait_timeout .

Другой распространенной причиной получения ошибки MySQL server has gone away является выдача команды "закрытия" на соединении MySQL с последующей попыткой выполнить запрос на закрытом соединении.

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

Обычно в этом случае выдаются следующие коды ошибки (какой из них вы получите, зависит от ОС):

Ошибка будет также выдана, если кто-нибудь уничтожит выполняющийся поток посредством kill номерпотока.

Проверить, что MySQL на ходу, можно, запустив mysqladmin version и изучив время работы (uptime). Если проблема в аварийном завершении mysqld , то необходимо сосредоточиться на поиске причины аварии. В этом случае следует сначала проверить, не будет ли уничтожен MySQL снова при повторном задании запроса (see section ).

Эти ошибки будут также выдаваться при посылке серверу неверного или слишком длинного запроса. Если mysqld получает неправильный или слишком большой пакет, то сервер предполагает, что с клиентом что-то не так, и закрывает соединение. Если необходимо выполнять объемные запросы (например, при работе с большими столбцами типа BLOB), можно увеличить предельный размер запроса, запустив mysqld с опцией -O max_allowed_packet=# (по умолчанию 1 Mб). Дополнительная память выделяется по требованию, так что mysqld будет использовать больше памяти только в случае, когда выдан большой запрос или когда mysqld должен возвратить большую строку результата!

Если у вас возникнет желание сделать отчет об ошибке по этой проблеме, то не забудьте включить в него следующие сведения:

  • Информацию о том, упал MySQL или нет (это можно определить по файлу hostname.err (see section A.4.1 Что делать, если работа MySQL сопровождается постоянными сбоями).
  • Если определенный запрос уничтожает mysqld , а используемые в нем таблицы перед выполнением запроса проверялись с помощью CHECK TABLE , то желательно составить контрольный тест (see section E.1.6 Создание контрольного примера при повреждении таблиц).
  • Значение переменной wait_timeout в сервере (это значение выдает mysqladmin variables).
  • Информацию о том, пробовали ли вы запускать mysqld с --log и проверять, появляется ли выданный запрос в журнале.