Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > как сделать автоматический re-connect к MySQL?


Автор: ochnev 13.4.2007, 16:47
Есть скрипт, работающий в режиме FastCGI, и в нём нужно поддерживать постоянный коннект к MySQL в течение очень долгого времени. Естественно, коннект может отвалиться.
Как правильно сделать автоматический re-connect к MySQL?

Я увидел http://nginx.info/index.pl/ru/forum/fastcgi-nginx/fastcgi_programming/-fastcgi---perl-c-dbitt2 пример:
Код

$dblink->{mysql_auto_reconnect} = 1;

Но нигде в доках не нашёл упоминания про "mysql_auto_reconnect" (просто эту строку в доках искал).

Ещё в исходниках DBD::mysql не переопределяется метод ping из DBI, который по умолчанию возвращает true.
Странно.

Есть какой-нибудь надёжный способ проверить, живо ли соединение с сервером MySQL?

Автор: Бонифаций 13.4.2007, 17:19
метод пинг реализован в mysql c api, перловская DBI просто оболочка над этим апи, поэтому в реализации на перле этой функции нет необходимости.

mysql_auto_reconnect:

mysql_auto_reconnect This attribute determines whether DBD::mysql will automatically reconnect to mysql if the connection be lost. This feature defaults to off; however, if either the GATEWAY_INTERFACE or MOD_PERL envionment variable is set, DBD::mysql will turn mysql_auto_reconnect on. Setting mysql_auto_reconnect to on is not advised if 'lock tables' is used because if DBD::mysql reconnect to mysql all table locks will be lost. This attribute is ignored when AutoCommit is turned off, and when AutoCommit is turned off, DBD::mysql will not automatically reconnect to the server.


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