Категории
[FAQ] Часто задаваемые вопросы и ответы
Проблемы и решения
Ошибки и исправления
Общие вопросы
Расширения
Установка и обновление
Модули
Шаблоны
Локализация интерфейса
Коммерческие предложения
Учимся бизнесу
Бизнес книги
Поисковая оптимизация (SEO)
Магазины на ShopOS
Хостинг для ShopOS
Предложения и пожелания
Курилка
|
Ошибка БД - 2006 - MySQL server has gone away
Может кто-нибудь сталкивался: Сегодня за день пришло более 2000 писем с данной ошибкой. Причем началось все в 14.15 дня, сайт днем не трогал. С любой посещенной страницы приходит один и тот же текст. Привожу:
MYSQL ERROR REPORT - 11/10/2009 17:10:38 --------------------------------------- 2006 - MySQL server has gone away
SELECT * FROM os_customers_status WHERE customers_status_id = '1' AND language_id = '1' --------------------------------------- Server Name : raritet-parfum.ru Remote Address: 81.88.222.82 Referer : http://raritet-parfum.ru/index.php?cat=531 Requested : /index.php?cat=531&on_page=10 Trace Back : redirector.php:182(includearray(1) {; =>; string(51) "index.php"; }; ) => index.php:11(includearray(1) {; =>; string(58) "includes/top.php"; }; ) => includes/top.php:258(requirearray(1) {; =>; string(77) "includes/write_customers_status.php"; }; ) => includes/write_customers_status.php:53(os_db_queryarray(1) {; =>; &string(319) "SELECT; *; FROM; os_customers_status; WHERE; customers_status_id = '1' AND language_id = '1'"; }; ) => includes/functions/admin.include.php:3410(os_db_errorarray(3) {; =>; &string(319) "SELECT; *; FROM; os_customers_status; WHERE; customers_status_id = '1' AND language_id = '1'"; =>; &int(2006); =>; &string(26) "MySQL server has gone away"; };
Наиболее часто ошибка MySQL server has gone away возникает в результате тайм-аута соединения и его закрытия сервером. По умолчанию сервер закрывает соединение по прошествии 8 часов бездействия. Можно изменить лимит времени, установив при запуске mysqld переменную wait_timeout.
Другой распространенной причиной получения ошибки MySQL server has gone away является выдача команды "закрытия" на соединении MySQL с последующей попыткой выполнить запрос на закрытом соединении.
Да, Евгений, давай попробуем разобраться, вдруг еще кому-то пригодится. Сегодня опять начали сыпаться письма. По письмам определил, что иногда поступает по несколько запросов в секунду, соотв это работа машины, а не действий человека. Причем, все письма, которые пришли сегодня - с одного адреса, Remote Address: 84.23.43.244 Вводим здесь http://domains.whois.com/domain.php?action=whois , получаем данные московского провайдера http://home.imsys.ru/ Соответственно, больше похоже на какую-то атаку злобного Василия.... Как считаешь?
прежде всего отключить отправку email из за возникших ошибок.
includes\functions\admin.include.php
заменить
function os_db_error($query, $errno, $error) { include(_LANG.'ru/db_error.php'); if (DB_ERR_MAIL_SEND == true) { $msg = "\n" . 'MYSQL ERROR REPORT' . "\n" . " - " . date("d/m/Y H:m:s",time()) . "\n" . '---------------------------------------' . "\n"; $msg .= $errno . ' - ' . $error . "\n\n" . $query . "\n"; $msg .= '---------------------------------------' . "\n"; $msg .= 'Server Name : ' . $_SERVER . "\n"; $msg .= 'Remote Address: ' . $_SERVER . "\n"; $msg .= 'Referer : ' . $_SERVER . "\n"; $msg .= 'Requested : ' . $_SERVER . "\n"; $msg .= 'Trace Back : ' . str_replace(DIR_FS_CATALOG, '', str_replace('\\', '/', implode(" => ", zen_trace_back('', 0 , 1, true))))."\n";; if(defined('DEBUG') && DEBUG == true) { echo(nl2br($msg)); die('=========================================================================='); } $log = date("d/m/Y H:m:s",time()) . ' | ' . $errno . ' - ' . $error . ' | ' . $query . ' | ' . $_SERVER . "\n"; error_log($log, 3, 'mysql_db_error.log'); mail(DB_ERR_MAIL, 'MySQL DB Error!', $msg, 'From: db_error@'.$_SERVER); } //if (!headers_sent() && file_exists('db_error.html') ) { // header('Location: db_error.html'); //include('db_error.html'); // } die(DB_ERR_MSG); }
на
function os_db_error($query, $errno, $error) { include(_LANG.'ru/db_error.php'); if (DB_ERR_MAIL_SEND == true) { $msg = "\n" . 'MYSQL ERROR REPORT' . "\n" . " - " . date("d/m/Y H:m:s",time()) . "\n" . '---------------------------------------' . "\n"; $msg .= $errno . ' - ' . $error . "\n\n" . $query . "\n"; $msg .= '---------------------------------------' . "\n"; $msg .= 'Server Name : ' . $_SERVER . "\n"; $msg .= 'Remote Address: ' . $_SERVER . "\n"; $msg .= 'Referer : ' . $_SERVER . "\n"; $msg .= 'Requested : ' . $_SERVER . "\n"; $msg .= 'Trace Back : ' . str_replace(DIR_FS_CATALOG, '', str_replace('\\', '/', implode(" => ", zen_trace_back('', 0 , 1, true))))."\n";; if(defined('DEBUG') && DEBUG == true) { echo(nl2br($msg)); die('=========================================================================='); } $log = date("d/m/Y H:m:s",time()) . ' | ' . $errno . ' - ' . $error . ' | ' . $query . ' | ' . $_SERVER . "\n"; error_log($log, 3, 'mysql_db_error.log'); //mail(DB_ERR_MAIL, 'MySQL DB Error!', $msg, // 'From: db_error@'.$_SERVER); } //if (!headers_sent() && file_exists('db_error.html') ) { // header('Location: db_error.html'); //include('db_error.html'); // } die(DB_ERR_MSG); }
Да, Евгений, давай попробуем разобраться, вдруг еще кому-то пригодится. Сегодня опять начали сыпаться письма. По письмам определил, что иногда поступает по несколько запросов в секунду, соотв это работа машины, а не действий человека. Причем, все письма, которые пришли сегодня - с одного адреса, Remote Address: 84.23.43.244 Вводим здесь http://domains.whois.com/domain.php?action=whois , получаем данные московского провайдера http://home.imsys.ru/ Соответственно, больше похоже на какую-то атаку злобного Василия.... Как считаешь?
так не понял
письма от скрипта или нет?
Источник
|