Вопрос по perl, web-crawler, mysql – MySQL сервер исчез во время сканирования в Perl

1

Я использую библиотеку WWW :: Mechanize, чтобы получить содержимое URL-адресов и сохранить их данные в таблицах MySQL. Но когда содержание страницы слишком велико, выдается следующее сообщение об ошибке:

DBD::mysql::st execute failed: MySQL server has gone away at F:\crawling\perl_tests\swc2.pl line 481.

Например, он выдает эту ошибку, когда я пытаюсь извлечь содержимое этой страницы:https://www.e-conomic.com/secure/api1/EconomicWebService.asmx?wsdl

Я также добавил этот код, но он все еще не работает

$connection->{max_allowed_packet}=1000000000;

Ваш Ответ

3   ответа
7

: mysql? Должно быть включено mysql_auto_reconnect.

Если вы используете mysql под вилками, вам может потребоваться установить

$dbh->{InactiveDestroy} = 1;
2

Вы можете посмотреть наDBIx :: Connector, Из документов:

You can store the connection somewhere in your app where you can easily access it, and for as long as it remains in scope, it will try its hardest to maintain a database connection. Even across forks (especially with DBI 1.614 and higher) and new threads, and even calls to $conn->dbh->disconnect. When you don't need it anymore, let it go out of scope and the database connection will be closed.

1

Попробуй добавить

max_allowed_packet=32M

в конфигурационном файле MySQL

Похожие вопросы