2012-05-02 10 views
1

WWW :: Mechanizeライブラリを使用してURLの内容を取得し、そのデータをmysqlテーブルに保存します。ページの含有量が多すぎると、それは、このエラーメッセージが表示できます:Perlでクロール中にMySQLサーバがなくなりました

DBD :: mysqlの:: stが失敗した実行:MySQLのサーバは Fで離れて行ってしまった:クロール\ \ perl_tests \ swc2.plライン481 。私はこのページのコンテンツを抽出しようとすると、

例えば、それは、このエラーがスローされます。https://www.e-conomic.com/secure/api1/EconomicWebService.asmx?wsdl

私もこのコードを追加しましたが、それはまだ

$connection->{max_allowed_packet}=1000000000; 
が動作しません。

答えて

7

最新のDBIとDBD :: mysqlを使用していますか? mysql_auto_reconnectを有効にする必要があります。

あなたはフォークの下でMySQLを使用している場合、あなたはあなたがDBIx::Connectorで見たいと思うかもしれません

$dbh->{InactiveDestroy} = 1; 
2

を設定する必要があるかもしれません。ドキュメントから:

あなたはそれを簡単にアクセス ことができ、そして限り、それがスコープ内に残っているようでは、それがデータベース接続を維持するために その最も困難をしようとするどこかのアプリで接続を保存することができます。 (特にDBI 1.614以降)と新しいスレッドの間でさえ、$ conn-> dbh-> disconnectへの を呼び出します。これ以上必要がない場合は、 を有効範囲外にして、データベース接続を閉じます。

1

は、MySQLの設定ファイルに

max_allowed_packet=32M 

を追加しよう

関連する問題