Andreas: Dump in mySQL einlesen (über PHP oder DOS-Box) will nicht...

Beitrag lesen

Hallo Namensvetter ;-)

ich versuche mit PHP einen MySQL-Dump als Datei zu erstellen und dann wieder einzulesen. Das dumpen geht, bei dem einlesen habe ich Probleme.

WIe machst Du das? Mit mysqldump? Mysqlhotcopy?

Ich habe bei meiner Suche im Archiv danach folgendes Script gefunden, um einen Dump in MySQL einzulesen (hier schon auf meinen DB-Namen umgemünzt):

<?
system("c:\mysql\bin\mysqldump -uroot -h127.0.0.1 vvwv1 < c:\vvwv1.sql ", $fp);

if ($fp==0) echo "Daten auf Server exportiert"; else echo "Es ist ein Fehler aufgetreten";
?>

Also:

das einfachste ist, wie in der Doku zu mysqldump (http://de.mysql.com/documentation/mysql/bychapter/manual.de_MySQL_Database_Administration.html#mysqldump)
 schon steht:

mysqldump --opt datenbank > datensicherung.sql

Diese können Sie zurück in MySQL einlesen mit:

mysql datenbank < datensicherung.sql

näheres zum Kommandozeilentool mysql findest Du hier:
http://de.mysql.com/documentation/mysql/bychapter/manual.de_MySQL_Database_Administration.html#mysql

Wenn ich es ausführe, wird "Daten auf Server exportiert" gemeldet, $fp ist auch tatsächlich Null, effektiv passiert aber nichts, heißt, die Tabellen werden nicht wieder hergestellt und (natürlich) auch nicht wieder mit den Inhalten beschrieben.

Ich weiß gar nicht ob das so überhaupt geht, denn das ganze hat wenig mit ,mysqldump zu tun, wie gesagt gibt es dafür mysql!

Kann das an den Userrechten hier auf meinem PC (Win2000/XP) liegen? Wenn ich nämlich in DOS das ganze versuche, dann bekomme ich einen Fehler 2 (no such file or directory), was aber nicht stimmt - die Datei ist da. Aus der Shell heraus kommt als Fehlermeldung "Access denied".

Vielleicht liegt es am Leerzeichen hinter dem Dateinamen? Aber wie gesagt, probiers mal mit der mysql.exe! Übrigens brauchst Du nicht deren Pfad wenn Du sie ins Systemverzeichnis kopierst, was wieder eine Fehlerquelle weniger wäre.

Grüße
Andreas