Andreas-Lindig: Daten kopieren & sichern in MySql

hallo Forum,
ich muss jetzt mal meine Datenbank in Ordnung bringen.
Ich habe einen Pizza-Shop zur Uebung programmiert.
Zu diesem Shop gehoert halt auch ein Redaktionssystem, mit dem man die Inhalte der Speisekarte aendern kann. Nun habe ich zuhause brav eine original-Speisekarte abgetippt und wuerde gern diesen Datenbankinhalt auf den Server meines Providers uebertragen.

->Wie geht das?

Ein Problem sind zum Beispiel die id's. Die habe ich in der Struktur der Tabellen auf 'auto_increment' gestellt. Jetzt habe ich nach einigen Aenderungen Luecken in den id-Spalten. Wenn ich die Tabellen einfach ueberspiele (ohne id's - anders gehts ja gar nicht) werden die id's in der Ziel-Datenbank wieder lueckenlos durchnumeriert. Das heisst aber, dass Verknuepfungen - ueber die id's (als Schluessel zwischen den Tabellen) - nicht mehr stimmen.

->Kann mir da mal jemand was grundsaetzliches dazu schreiben?
->Es geht mir dabei ja auch darum: wie sichert man die Daten einer Datenbank so, dass man sie nach einem Crash wieder aufspielen kann?

vielen Dank und Gruss, Andreas
--
http://pizza.andeas-lindig.de

  1. Hi,

    Daten und Srruktur sichert man mit einem "dump". Das ist praktisch das komplette SQL-Script um Deine Datenbank zu replizieren.
    Am besten benutzt du phpMyAdmin (hier downloaden: http://www.phpmyadmin.net/index.php?dl=3), weil du das auch bei deinem Provider zu Verfügung haben solltest. Das entpackst Du in ein entsprechendes Verzeichniss (phpmyadmin) in dein htdocs oder wwwroot.

    1. http://localhost/phpmyadmin/ in deinem Browser aufrufen
    2. Links die Datenbank anklicken.
    3. Runterscrollen zum Punkt "dump"
       "Struktur und Daten" wählen
       "Senden" anhaken
       "ok" clicken
       Jetzt bekommst du eine ".sql" Datei zum downloaden.

    Andersherum, d. h. den Dump bei deinem Provider einspielen funktioniert so:
    1. http://www.meine_homepage/phpmyadmin/(oder ähnlich) in Deinem Browser aufrufen
    2. Links die Datenbank anklicken.
    3. Runterscrollen zum Punkt "SQL-Befehl(e) ausführen..."
       "oder Datei" über "durchsuchen" Button sie SQL-Datei auswählen
       "ok" clicken
       Je nachdem wie gross die Datei ist dauert es einen Moment oder auch zwei und "schwups" ist Deine Datenbank da.

    Eigentlich total easy.

    Wenn Du deinen "Dump" hast, kannst du mir die Datei mailen. Dann schau ich mir Die Struktur an, wegen der "auto-increment"-Geschichte.

    Gruss

    1. Hi,

      so etwa wie Du sagst, habe ich es schon mal erfolglos versucht.

      Je nachdem wie gross die Datei ist dauert es einen Moment oder auch zwei und "schwups" ist Deine Datenbank da.

      Da hat mein Provider auch eine Zeitbeschränkung für uploads, ich weiß nicht, ob das auch ein Problem war, aber die Fehlermeldung klang so...

      Wenn Du deinen "Dump" hast, kannst du mir die Datei mailen. Dann schau ich mir Die Struktur an, wegen der "auto-increment"-Geschichte.

      Das ist wirklich nett von Dir. Allerdings muß ich den Dump zuhause machen - und jetzt bin ich in der Fachhochschule (hab zuhause kein Internet). Also morgen, ja?

      Gruß, Andreas

      1. Hi Andreas,

        na dann teil doch notfalls den Dump per Hand im Editor in mehrere handlichere Dateien.

        Gruss

        Hi,

        so etwa wie Du sagst, habe ich es schon mal erfolglos versucht.

        Je nachdem wie gross die Datei ist dauert es einen Moment oder auch zwei und "schwups" ist Deine Datenbank da.
        Da hat mein Provider auch eine Zeitbeschränkung für uploads, ich weiß nicht, ob das auch ein Problem war, aber die Fehlermeldung klang so...

        Wenn Du deinen "Dump" hast, kannst du mir die Datei mailen. Dann schau ich mir Die Struktur an, wegen der "auto-increment"-Geschichte.
        Das ist wirklich nett von Dir. Allerdings muß ich den Dump zuhause machen - und jetzt bin ich in der Fachhochschule (hab zuhause kein Internet). Also morgen, ja?

        Gruß, Andreas

  2. Hi!

    ich muss jetzt mal meine Datenbank in Ordnung bringen.
    Ich habe einen Pizza-Shop zur Uebung programmiert.
    Zu diesem Shop gehoert halt auch ein Redaktionssystem, mit dem man die Inhalte der Speisekarte aendern kann. Nun habe ich zuhause brav eine original-Speisekarte abgetippt und wuerde gern diesen Datenbankinhalt auf den Server meines Providers uebertragen.

    ->Wie geht das?

    Wie Gunnar beschrieben hat, und ich kenne einige Speisekarten, und wenn es Dir möglich war die in wenigen Stunden von Hand abzutippen ist das garantiert nicht zu groß für den Upload!!! Ich habe einen Dump mit mehreren 10.000 Datensätzen, der hatte nichtmal 1 MB! Kommt etwas auf die Daten an, aber wie groß ist denn Deine Dump-datei? Was hast Du für eine Internet-Anbindung? Sonst mußt Du den Dump für jede Tabelle einzelnd machen. Wenn das alles mit php-myadmin nicht geht, dann kannst Du es nur über einen Upoad über ftp, und dann über die Kommandozeile einlesen, wenn Du das nicht darfst/kannst bleibt Dir nur noch der SQL-Befehl "LOAD DATA INFILE".

    Ein Problem sind zum Beispiel die id's. Die habe ich in der Struktur der Tabellen auf 'auto_increment' gestellt. Jetzt habe ich nach einigen Aenderungen Luecken in den id-Spalten. Wenn ich die Tabellen einfach ueberspiele (ohne id's - anders gehts ja gar nicht) werden die id's in der Ziel-Datenbank wieder lueckenlos durchnumeriert. Das heisst aber, dass Verknuepfungen - ueber die id's (als Schluessel zwischen den Tabellen) - nicht mehr stimmen.

    Das ist egal, Du kannst ruhig die IDs mit dumpen und in die neue Tabelle schreiben, das mit auto-incerement ist nur für den Fall das keine ID manuell angegegeben ist!

    ->Kann mir da mal jemand was grundsaetzliches dazu schreiben?
    ->Es geht mir dabei ja auch darum: wie sichert man die Daten einer Datenbank so, dass man sie nach einem Crash wieder aufspielen kann?

    mit php myadmin => Dump schema
    ode2r über das Kommandozeilentool mysqldump, einlesen kannst Du einen Dump entweder über php-myadmin, oder das Kommandozeilentool mysql!

    Viele Grüße
    Andreas