Dump in mySQL einlesen (über PHP oder DOS-Box) will nicht...
Andreas Cloos
- datenbank
0 Andreas
Hallo Zusammen,
ich versuche mit PHP einen MySQL-Dump als Datei zu erstellen und dann wieder einzulesen. Das dumpen geht, bei dem einlesen habe ich Probleme.
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";
?>
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.
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".
Über PHPmyAdmin kann ich die Datei ohne Probleme einlesen, nur will bzw. kann ich es nicht verwenden.
Bin gerade etwas ratlos und über jeden Tip dankbar!
--
Greetz,
Andreas
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
Hallo Namensvetter ;-)
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!
Es geht jetzt... Ich hatte noch mysqldump drin stehen, statt nur mysql... Danke!
Manchmal hat man richtig dicke Tomaten auf den Augen, wenn man sich zu lange mit einem Problem beschäftigt, oder?
Grüße
Andreas