perl timeout zur mysql
norman
- perl
hallo,
ich habe ein "Lost connection to MySQL server during query" - problem mit active-perl 5.8.3 (dbi 1.41, dbd-mysql 2.9003), win xp prof. und mysql 4.0.18 (oder 4.1.1a).
diese fehlermeldung hängt von der bearbeitungszeit des selects des mysql-servers ab, d.h. wenn ich die db-einträge verringere, braucht der server weniger zeit zur bearbeitung und die ergebnisse werden an perl ohne probs geliefert.
wenn der mysql-server länger für die bearbeitung braucht, kappt das perl-script oder der liebe gott die connection nach ca. 30-40 sek.
die query wird vom mysql-server komplett ausgeführt (eintrag im slow query-log und im server-cache: wenn ich das perl-script nochmal starte, ist das ergebnis sofort da)
an der max_allowed_packet kanns nicht liegen, weil ich daten abhole (select) und nichts an die mysql schicke (insert...). (ich hab eh 16mb eingestellt)
use db_config;
my $abfrage = 'SELECT xxx limit 0,30;';
my $db_name = 'test3';
my $dbh = db_config::getDB($db_name);
my $sth = $dbh->prepare($abfrage);
$sth->execute() or die "Error in SQL-Query";
while (my @line = $sth->fetchrow()) {
print join("|",@line)."\n";
}
$sth->finish();
$dbh->disconnect();
package db_config;
use DBI;
$DB_HOST = "127.0.0.1";
$DB_PORT = "3306";
$DB_USER = "root";
$DB_PASSWD = "";
sub getDB {
my $DB_NAME = shift;
my $DB_DSN = "DBI:mysql:$DB_NAME:$DB_HOST:$DB_PORT";
my $dbh = DBI->connect($DB_DSN, $DB_USER, $DB_PASSWD, {PrintError => 1, RaiseError => 1, AutoCommit => 0});
return $dbh;
}
1;
hat jemend eine idee, wer das timeout erursacht? mysql_connect_timeout ist es nicht.
gruß
norman