Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]3418[/thread]

perl timeout zur mysql: Lost connection to MySQL server during..



<< |< 1 2 >| >> 13 Einträge, 2 Seiten
Gast Gast
 2004-03-10 20:53
#31817 #31817
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)

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
### hauptprog.
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();

### db_config
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 verursacht? mysql_connect_timeout ist es nicht.

gruß
norman

EDIT: zum ersten Mal Code-Tags in einem fremden Beitrag eingefuegt :-)\n\n

<!--EDIT|ptk|1078999439-->
ptk
 2004-03-11 12:06
#31818 #31818
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Laesst du das Skript auf einem Webserver als CGI oder so laufen? Manchmal sind bei Webservern maximale Laufzeiten (reale Zeit oder CPU-Zeit) eingestellt.
norman
 2004-03-11 14:20
#31819 #31819
User since
2004-03-11
46 Artikel
BenutzerIn
[default_avatar]
hi,

nein, ich starte das script nicht von dem server aus (um das ding als fehlerquelle auszuschliessen.)

## unter linux mit perl 5.8.0 läuft es, entweder ein windowsprob oder ein active perl prob oder, oder ###

es kann doch nicht sein, das ich der einzige perl-nutzer bin, der diesen fehler hat????! *verzweifel*

gruß,
norman

ps: den timeout verursacht perl, mit php funkt die query (nach verlängerung der executiontime)...

wo ist der perl timeout???
Strat
 2004-03-12 01:18
#31820 #31820
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
ich kenne eigentlich nur die Fehlermeldung: mysql has gone away... sowas waere wohl was fuer eine DBI-Mailingliste, ich glaube, auf http://www.perl.org/ gibt es eine...

verwendest du DBI und DBD::mysql? oder die Pur-Perl-Version davon (DBD::mysql::perl oder so aehnlich)? die ist anscheinend ziemlich alpha
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
norman
 2004-03-12 09:53
#31821 #31821
User since
2004-03-11
46 Artikel
BenutzerIn
[default_avatar]
hi,

ich nutze die neusten dbi, dbd::mysql-module. (nicht dbd::mysql::perl). ist es möglich, das der fehler auf activeperl beschränkt ist?

gruß,
norman
format_c
 2004-03-12 10:04
#31822 #31822
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Hast du schon mal probiert dich mit nem mysql-client auf des Host/DB zu verbinden und die Abfrage (von Hand) auszuführen.

Wenn da der selbe Fehler kommt, liegts schon mal nicht an deinem Programm.

Gruß Alex
norman
 2004-03-12 12:11
#31823 #31823
User since
2004-03-11
46 Artikel
BenutzerIn
[default_avatar]
hi alex,

von der mysql-kommandozeile funktionierts, vom mysql-front (mein client) funktionierts auch.
ich habe rumgegoogelt: ein paar user haben das gleiche prob, schei*e ist nur, das der entsprechende thread nie zu einer lösung gekommen ist.
ich denke das das ein activeperl prob unter windows ist (habe nur activeperl und windows 2000+ user dazu gefunden).

gruß
norman
format_c
 2004-03-12 13:35
#31824 #31824
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Ich probiere heute abend mal von meiner Active Perl Installation von W2K auf einen MySQL Server zu kommen.

Gruß Alex
norman
 2004-03-12 17:39
#31825 #31825
User since
2004-03-11
46 Artikel
BenutzerIn
[default_avatar]
danke! wichtig ist, das die query über 30-40 sekunden zur bearbeitung braucht...

ich bin aufs ergebnis gespannt.
format_c
 2004-03-12 17:52
#31826 #31826
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Hallo da brauche ich ja soviel Datensätze, dass es den Rahmen meiner DB sprengen würde.
Geht denn ein Connect einer kürzeren Abfrage?

Mein Test mit einer kurzen (wie gesagt, habe keine größere DB) klappt wunderbar.
Gruß Alex
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2004-03-10 20:53.