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

HelpFinder

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

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

Фанат

oncle terrible
Команда форума
перегонять из однй таблицы в другую средствами SQL
 

HelpFinder

Новичок
извините не могу понять о чём идёт речь.
в цикле просто происходит команда select - для проверки наличия такой информации в базе. и если нет такой записи, то она вставляется командой insert into

почемуже рано или позно выбивает?
 

Фанат

oncle terrible
Команда форума
потому что ты просто УБИВАЕШЬ СЕРВЕР своими инсертами.

ты всё ещё хочешь узнать, почему выбивает, или же хочешь СДЕЛАТЬ ПО-ЧЕЛОВЕЧЕСКИ?
 

HelpFinder

Новичок
хочу сделать по человечески. подскажите как.
на самом деле там происходит в цикле следующее
{
получить элемент;
проверить наличие этго элемента в таблице;
вставить элемент, если такого там нет;
}

вроде всё просто, но убивает
 

HelpFinder

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

-~{}~ 28.08.06 16:25:

может ли падать сервак оттого, что запрос к таблице делается по неиндексированным полям длина которых 255 символов?
 

Фанат

oncle terrible
Команда форума
от чего падает сервак, написано в логах.
а с гаданием "отчего да почему" обратись к ближайшему шаману.
ещё вопросы есть?
 

HelpFinder

Новичок
проблема моя не решилась. логов крона провайдер не предоставляет. всё что я имел - это ошибка. которую написал в топике. единственное что смог сделать - это разгрузил работу скрипта. начал выполнять задания порциями.
 

HelpFinder

Новичок
скрипт запускается кроном. на емейл высылается ошибка и слествие ошибки. вот в частности ошибка
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

и никак не пойму как избежать этой ошибки. ведь она возникает не всегда
 

Фанат

oncle terrible
Команда форума
чувак.
я тебе написал уже, два раза. как избежать этой ошибки.
может, ты по-русски плохо понимаешь? тебе по-каковски написать? чтобы ты бред нести перестал
 

HelpFinder

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

и ответа в чём суть ошибки и как её обойти я не вижу здесь.
не исползьовать чтоли mysql средтсвами php
 

Фанат

oncle terrible
Команда форума
первый и второй пункт - это ОДНО И ТОЖЕ.
второй пункт не "оптимизирует запрос", а из твоего идиотизма с насилованием базы, делает нормальный механизм.

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

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

HelpFinder

Новичок
спасибо что попытался вразумить.

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

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

Wicked

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