Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > perl+Mysql


Автор: burakov 27.4.2010, 16:08
Добрый день...

По моему у меня обрывает коннект к mysql по таймауту......

в php это лечится set_time_limit (0);

как то же самое сделать в PERL???

Спасибо.

Автор: frenkys 28.4.2010, 00:44
Код

$dbh->{mysql_auto_reconnect} = 1;

Автор: burakov 28.4.2010, 08:22
Чего то не помогает... :(
но то что отваливается  по таймауту - это точно. Т.е. бывает моменты, когда скрипт успевает отработать, бывает когда отвалится.... при совершенно одинаковых условиях

может есть еще какое решение?

p.s. попробовал в сторону многострочного sql запроса,
но DBI дает ошибку max_allowed_packet...
т.е. где то ему нужно указать размер переданного пакета побольше...
как это сделать?

Автор: burakov 28.4.2010, 10:40
разобрался с max_allowed_packed

пробую все таки в сторону многостроных запросов,
но почему то DBI говорит ошибка в синтаксисе,

хотя если принт запроса исполняешь через phpadmin то все нормально исполняется!

в чем тут тонкость?

Автор: shamber 28.4.2010, 11:15
Цитата(burakov @  28.4.2010,  10:40 Найти цитируемый пост)
в чем тут тонкость? 

экранирование?

Автор: burakov 28.4.2010, 11:30
пробовал и с экранированием и без... по одному запросу - все работает. Если несколько запросов объединить в один через ; все - ошибка
прочитал следующее...

"Несколько команд SQL нельзя помещать в один дескриптор команды ($sth), хотя некоторые базы данных и драйверы поддерживают такую возможность..."

получается нельзя использовать многострочные запросы??? 
а я уже по одному и не хочу (гораздо дольше получается).

в PHP попробовал многострочный запрос - работает!!!

люди!!! помогите!!!

еще в интернете нарыл, что можно внешнюю утилиту исполнения sql запросов из командной строки использовать sql plus ... - в принципе подходит, 
только найти такую для mysql не могу никак (все под oracle). 

в стандартном mysql какая то командная строка есть , но использую denwer поэтому мне бы чего нибудь стороннее с возможностью прописать куда подключаться..
может кто знает такую утилиту???






Автор: burakov 28.4.2010, 15:58
Друзья! какая радость...
нашел вроде бы решение проблемы
почему отваливается коннект

проблема вроде бы возникает только в windows и решается правкой реестра
я подправил у себя и отваливаться перестало....

Эту тему закрываю, но открываю тему многострочных запросов ибо непонятно умеет ли это делать DBI и как быть в случае больших объемов.

#

Start Registry Editor (Regedt32.exe).
#

Locate the following key in the registry:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

#

On the Edit menu, click Add Value, and then add the following registry value:

Value Name: MaxUserPort
Data Type: REG_DWORD
Value: 65534

This sets the number of ephemeral ports available to any user. The valid range is between 5000 and 65534 (decimal). The default value is 0x1388 (5000 decimal).
#

On the Edit menu, click Add Value, and then add the following registry value:

Value Name: TcpTimedWaitDelay
Data Type: REG_DWORD
Value: 30

This sets the number of seconds to hold a TCP port connection in TIME_WAIT state before closing. The valid range is between 0 (zero) and 300 (decimal). The default value is 0x78 (120 decimal).

Автор: burakov 28.4.2010, 16:25
тему закрыл

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)