Perl DBI Versions Problem

Alles, was Perl betrifft, kann hier besprochen werden.

Perl DBI Versions Problem

Postby iPeon » 26. November 2008 11:30

Hallo zusammen,

ich nutze XAMPP Version 1.6.8 mit dem aktuellen Perl Addon Version 5.10.0-2.2.9-pl2. Desweiteren nutze ich den MySQL Dumper, der auf das Modul DBI zugreifen muss. Und hierbei taucht folgender Fehler auf...

Code: Select all
[Wed Nov 26 11:14:03 2008] [error] [client 127.0.0.1] Premature end of script headers: crondump.cgi, referer: http://localhost/mysqldumper/filemanagement.php?action=dump
[Wed Nov 26 11:14:03 2008] [error] [client 127.0.0.1] DBI object version 1.607 does not match $DBI::VERSION 1.604 at C:/xampp/perl/lib/DynaLoader.pm line 226.\r, referer: http://localhost/mysqldumper/filemanagement.php?action=dump
[Wed Nov 26 11:14:03 2008] [error] [client 127.0.0.1] BEGIN failed--compilation aborted at C:/xampp/perl/lib/DBI.pm line 263.\r, referer: http://localhost/mysqldumper/filemanagement.php?action=dump
[Wed Nov 26 11:14:03 2008] [error] [client 127.0.0.1] Compilation failed in require at C:/xampp/htdocs/mysqldumper/msd_cron/crondump.cgi line 29.\r, referer: http://localhost/mysqldumper/filemanagement.php?action=dump
[Wed Nov 26 11:14:03 2008] [error] [client 127.0.0.1] BEGIN failed--compilation aborted at C:/xampp/htdocs/mysqldumper/msd_cron/crondump.cgi line 29.\r, referer: http://localhost/mysqldumper/filemanagement.php?action=dump


Ich glaube, dass hier der eigentliche Fehler liegt...

Code: Select all
DBI object version 1.607 does not match $DBI::VERSION 1.604 at C:/xampp/perl/lib/DynaLoader.pm line 226


Jetzt kenn ich mich nicht sehr gut mit Perl Modulen aus. Ich vermute mal, dass laut der Fehlermeldung die derzeitige DBI Version höher ist, als der Dynaloader versteht oder so.

In der Dynaloader.pm steht auf Zeile 226 folgender Befehl

Code: Select all
&$xs(@args);


Gibt es Leute die ähnliches Problem haben? Gibt es dazu eine einfach zu verstehende Lösung? Ich stehe für weitere Fragen dazu gerne offen.
Mit freundlichen Grüßen


iPeon
iPeon
 
Posts: 3
Joined: 26. November 2008 11:18
Location: [NRW]

Postby Nobbie » 26. November 2008 11:36

Ich glaube nicht, dass Du den Mysqldumper auf Windows ans Laufen kriegst. Der ist nur unter Linux getestet.

Da er auf lokalen PCs ohnehin sinnlos ist, wäre es vielleicht einfacher, Du beschreibst hier, was Du eigentlich machen möchtest, damit Du eine bessere Lösung dafür findest.
Nobbie
 
Posts: 6579
Joined: 09. March 2008 13:04

Postby iPeon » 26. November 2008 11:49

Also erstmal teste ich diesen auf lokalen PC.

Das was ich brauche ist eigentlich ein Cronscript, was meine komplette MySQL Datenbank täglich sichert über Nacht (14 Tages Generationen) und und das selbe nochmal monatlich (12 Generationen). Das ganze würde auf einen Windows Server läufen, der auch in erreichbarer nähe ist (wohl auch Lokal).

Aber ich hab das Problem lösen können mit dem Perl DBI Versionsproblem.

Das derzeitige Packet von Perl Addon Version 5.10.0-2.2.9-pl2 beinhaltet 2 verschiedene DBI Versionen (wurde zum test alles frisch installiert). Die aktuelle Version 1.6.07 befindet ich im Ordner ../xampp/perl/bin/dbi/... und das equivalent dazu im Ornder ../xampp/perl/bin/dbi.pm

Und in dieser Datei steht direkt zu Anfang
Code: Select all
BEGIN {
$DBI::VERSION = "1.604"; # ==> ALSO update the version in the pod text below!
}


ändern zu

Code: Select all
BEGIN {
$DBI::VERSION = "1.607"; # ==> ALSO update the version in the pod text below!
}


Danach funktioniert das DBI Modul wieder... *freu*
Und bitte auch die anweisung befolgen... (# ==> ALSO update the version in the pod )

Ich bin dennoch gerne für andere Vorschläge, statt MySQL Dumper :D
Mit freundlichen Grüßen


iPeon
iPeon
 
Posts: 3
Joined: 26. November 2008 11:18
Location: [NRW]

Postby Nobbie » 26. November 2008 15:43

>Das ganze würde auf einen Windows Server läufen, der auch in erreichbarer nähe ist (wohl auch Lokal).

Das macht den MySQLDumper überflüssig. Der Sinn und Zweck des Dumpers ist es, via HTTP regelmäßig Sicherungen in kleinen Happen von nicht-lokalen (= remote) Servern zu machen, da die eben NICHT anders erreichbar sind.

Rechner, auf die man direkt zugreifen kann, sind mit viel besseren Mitteln zu sichern. Beispielsweise einfach regelmäßig eine Kopie des MySQL data-Ordners anlegen (z.B. auf eine externe Festplatte kopieren, oder auf eine DVD brennen etc.).
Nobbie
 
Posts: 6579
Joined: 09. March 2008 13:04


Return to Perl

Who is online

Users browsing this forum: No registered users and 1 guest