как обойти MySQL server has gone away ?

HelpFinder

Новичок
как обойти MySQL server has gone away ?

запускаю на сервере свой скрипт, который последовательно в цикле перегоняет данные из одной таблицы в другую. со временем когда скрипт работает слишком долго, появляется ошибка "MySQL server has gone away". как мне её обойти? пробовал использовать в начале каждого цикла mysql_ping - команду для восстановления соединения, но не помогло. что же делать?
 
перегонять из однй таблицы в другую средствами SQL
 
извините не могу понять о чём идёт речь.
в цикле просто происходит команда select - для проверки наличия такой информации в базе. и если нет такой записи, то она вставляется командой insert into

почемуже рано или позно выбивает?
 
потому что ты просто УБИВАЕШЬ СЕРВЕР своими инсертами.

ты всё ещё хочешь узнать, почему выбивает, или же хочешь СДЕЛАТЬ ПО-ЧЕЛОВЕЧЕСКИ?
 
хочу сделать по человечески. подскажите как.
на самом деле там происходит в цикле следующее
{
получить элемент;
проверить наличие этго элемента в таблице;
вставить элемент, если такого там нет;
}

вроде всё просто, но убивает
 
Помогите уж как сделать, чтобы сервак не убивался?
может нужно в цикле между запросами делать какую-нибудь команду типа sleep ? чтобы время между запросами имелось время?

-~{}~ 28.08.06 16:25:

может ли падать сервак оттого, что запрос к таблице делается по неиндексированным полям длина которых 255 символов?
 
от чего падает сервак, написано в логах.
а с гаданием "отчего да почему" обратись к ближайшему шаману.
ещё вопросы есть?
 
проблема моя не решилась. логов крона провайдер не предоставляет. всё что я имел - это ошибка. которую написал в топике. единственное что смог сделать - это разгрузил работу скрипта. начал выполнять задания порциями.
 
скрипт запускается кроном. на емейл высылается ошибка и слествие ошибки. вот в частности ошибка
Critical Error: in CDB::Query(), error Could not process query 'update links set datascan='2006:08:25' where id=28086': MySQL server has gone away

и никак не пойму как избежать этой ошибки. ведь она возникает не всегда
 
чувак.
я тебе написал уже, два раза. как избежать этой ошибки.
может, ты по-русски плохо понимаешь? тебе по-каковски написать? чтобы ты бред нести перестал
 
1)перегонять из однй таблицы в другую средствами SQL
2)REPLACE INTO tebla SELECT * FROM table
вот что ты написал. первый пункт мне не ясен.
второй пункт оптимизирует запрос. н о в других скриптах ситуациях у меня такая проблема возникает тоже. в частности в запросе 'update links set datascan='2006:08:25' where id=28086'

и ответа в чём суть ошибки и как её обойти я не вижу здесь.
не исползьовать чтоли mysql средтсвами php
 
первый и второй пункт - это ОДНО И ТОЖЕ.
второй пункт не "оптимизирует запрос", а из твоего идиотизма с насилованием базы, делает нормальный механизм.

если у тебя тыща запросов вида 'update links set datascan='2006:08:25' то кладёт тебе базу не этот запрос, а их количествно.

но блин, уговаривать тебя, чтобы ты прочёл, и хоть как-то отреагировал на то, что тебе говорят, меня достало.
я, мля, не понимаю - кому нужно твою проблему исправить.
такое ощущение- что мне.
а мне скоро надоест из тебя ногами выбивать какую-то обратную связь.
 
спасибо что попытался вразумить.

хотябы теперь насчёт фразы
если у тебя тыща запросов вида 'update links set datascan='2006:08:25' то кладёт тебе базу не этот запрос, а их количествно.

базу знать что делать. не допускать большое количество запросов одним скриптом в цикле. сохранять временное значение счетчика и при последующем запуске скрипта уже возращаться к последнему элементу предыдущего прохода
 
чювак, для того, чтобы перегнать _все_ данные из одной таблицы в другую, достаточно _одного_ запроса. Без всяких циклов.
 
Сверху