Als Webentwickler kommt man ja öfter mal in die Situation eine Datenbank zwischen zwei Hosts kopieren zu müssen. Meist ist der MySQL Server so konfiguriert, dass nur lokale Verbindungen erlaubt sind. Ein MySQL-Verbindungsaufbau vom Host Ziel zum Host Quell fällt also schonmal flach. Meist wird man sich also mysqldump oder phpMyAdmin behelfen. Am einfachsten geht es wohl, wenn man mysqldump und den mysql-Kommandozeilen-Client einfach hintereinander schaltet – mit einer SSH Verbindung dazwischen. Und weil es so einfach ist, werden die Daten vor dem Versand über das Netz noch komprimiert.
Heraus kommt ein Einzeiler, $server sei dabei die Adresse des Quell-Hosts und $db der Datenbankname (die Datenbank muss auf dem Zielrechner bereits exisitieren). Nun kann man auf dem Ziel-Rechner folgendes eingeben:
(ssh $server mysqldump -u root $db -p |gzip) |gunzip | mysql -u root $db
Hier wurde für den Zugriff auf die Quell-Datenbank der MySQL-Benutzer root mit Kennwort verwendet, auf dem Zielrechner sogar der MySQL Benutzer root ohne Kennwort – da es sich in dem Fall um meinen Laptop handelt und MySQL von außen nicht erreichbar ist 🙂
Ich denke, dass Prinip sollte klar geworden sein.
Jaja, das sind Probleme aus dem Leben, die ich nachfühlen kann 😉