П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 174912 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 71817 раз(а).

Учебник HTML.
Просмотров 72001 раз(а).

Руководство по PHP5.
Просмотров 42607 раз(а).

Хостинг через призму DNS.
Просмотров 49045 раз(а).

Подборка текстов стандартных документов.
Просмотров 43025 раз(а).

Учебник PHP - Самоучитель
Просмотров 49370 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 49599 раз(а).

Внешние атаки...
Просмотров 40152 раз(а).

Учебник PHP.
Просмотров 35182 раз(а).

SSI в примерах.
Просмотров 26492 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь




Приложение A. Проблемы и распространенные ошибки
Пред.     След.

A.2. Распространенные ошибки при использовании MySQL
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 Раздел A.4.1, «Что делать, если работа MySQL сопровождается постоянными сбоями»).

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

Вы также можете получить разрыв соединения, если вы отправили пакет больше 16Мб, если ваш клиент старше чем 4.0.8, а ваш сервер 4.0.8 или новее.

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

Обращайтесь к разделу See Раздел 1.8.1.2, «Как задавать вопросы и направлять сообщения об ошибках».


Назад Начало Главы Начало Раздела Вперед

Пред. Глава След. Глава
Глава 9. Расширение MySQL Начало Книги Приложение B. Error Codes and Messages


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru