MySQL Database Restore



  • Hi Fans,

    es geht hier um ein Win2000 System und MySQL.

    Ich habe mit mysqldump ein SQL Dump erstellt:

    mysqldump --databases --add-drop-table --add-locks --lock-tables --quote-names -h host -u user -p pwd databasename > c:\filename.sql
    

    diesen möchte ich in ein absolut jungfräuliches System zurückspielen.

    Im Script steht nun ganz oben:

    CREATE DATABASE /*!32312 IF NOT EXISTS*/ `TestDatenBank`;
    
    USE TestDatenBank;
    

    Die Datenbank "TestDatenbank" existiert zu Beginn (nach der Installation) auf dem Server noch nicht. Ich will nun erreichen, dass mit Ausführen des Scriptes die DB erstellt und befüllt wird.

    mysql -h host -u Benutzer -p Passwort [b]TestDatenbank[/b] < c:\filename.sql
    

    Das Problem dabei ist, dass man bei mysql.exe immer einen DB Namen angeben muß. Da es TestDatenbank noch nicht gibt (will ich ja erst mit dem Script erstellen) kann ich mich also ohne Angabe eines DB-Namens nicht das Script ausführen. Oder doch? Und wenn ja wie, oder wie sonst?

    MfG F98.



  • So kannst du dich ohne eine Datenbank anzugeben einloggen:

    mysql –h localhost –u root
    

    Das funktioniert aber auch nur bei einer "jungfräulichen" Datenbank.
    EDIT: Oder bei mir geht es nicht mehr, weil ich immer die Standardbenutzer nach der Installation lösche. Bei einem frisch installierten MySQL geht es auf jeden Fall.



  • Nuja, wie ich mich einloggen kann weis ich doch 🕶 Problem ist aber das SQL-Script zu installieren, da man dabei immer einen DB Namen angeben muß.

    Ich habe 2 Lösungen gefunden:

    mysql -h localhost -u root -e "create database gewünschte_db"
    mysql -h host -u Benutzer -p Passwort gewünschte_db < datenbankfile
    

    Es wird also erst ein Kommando abgesetzt, bei dem die später zu benutzende DB erzeugt wird. Danach wird in eben diese DB das Script eingespielt.

    mysql -h host -u Benutzer -p Passwort [b]mysql[/b] < datenbankfile
    

    Mit Trick 17 wird sich erstmal auf die standardmäßig nach der Installation schon vorhandene Datanbank mysql eingeloggt. Im Script selber wird dann mittels CREATE ... die benötigte DB erzeugt und mit USE gewünschte_db; auf diese umgeschaltet und die Tabellen usw. erzeugt.



  • wie wär's denn mit:

    mysql -h localhost -u root -e "source datenbankfile"
    

    Ungetestet, aber müsste doch eigentlich funzen.



  • Hab ich ebenfalls probiert. Da bringt er aber einen "MySQL-Error at line 1 ... tralala" (mit dem selben Script, was ich immer verwende und was fehlerfrei ist).


Anmelden zum Antworten