Komplettes Backup - Sichern und Wiederherstellen

  • Zitat

    Also irgendwie verwirrst Du mich jetzt...
    In deinem ersten Post hieß der Benutzer noch kunde002sql1. Jetzt ist es auf einmal kunde005sql1. Was denn nun?


    Dazu folgendes zur Erklärung: Nachdem ich den Server neu aufgesetzt hatte, musste die DB des Users kunde002sql1 unbedingt schnell wieder laufen. Da es nicht ging, hab ich den User in phpmyadmin gelöscht und neu angelegt. Ihm hab ich das alte Passwort wieder gegeben und anschließend hab ich ihm die DB kunde002sql1 die er vorher ja hatte zugewiesen.


    Die beiden DB User kunde005sql1 und kunde007sql1 hatten zwar vorher auch mal eine DB gehabt, aber diese waren leer. Da ich die momentan also nicht brauchte, hatte ich die Benutzer nicht weiter geändert - daher konnte ich jetzt mit den beiden (und da hab ich nun einfach mal kunde005sql1 genommen) probieren.


    Letztendlich konnte ich mit dem mysql Befehl

    Code
    update user set Password=PASSWORD('Password') where User='kunde005sql1' and Host='localhost';


    Dem Benutzer wieder ein Passwort zuweisen. Nachdem ich das gemacht hatte, ging auch wieder das Passwort ändern übers SysCP.


    Also letztlich abschließend meine Frage:
    Wie spiele ich die genauen mysql Daten nach einem neuaufsetzen des Servers wieder zurück? Der weg übers phpmyadmin scheint offensichtlich nicht 100%ig zu klappen, da dann die Benutzer nicht richtig im mysql angelegt werden. Es geht aber, wenn man die Passwörter für jeden Benutzer im Nachhinein in mysql per set Password ändert.
    Allerdings geht das nur, solange ich die Passworte kenne, oder jeder "kunde" muss nachher in seinem Account sich das Passwort erneut setzen. Eigentlich ist das nicht tragbar...


    Was die Passworte und Verschlüsselt angeht:

    Zitat

    Ich hoffe ja, dass das Password nicht im Klartest in der User-Tabelle steht. Weil sonst macht MySQL dicht. Immer schön die Agregat Funktion PASSWORD() nehmen.


    Selbstverständlich stehen die Passworte der Benutzer da verschlüsselt ;)


    Grad nochmal probiert:
    Allerdings hab ich grad nochwas erfolgreich probiert: Ich kann die Benutzer erst alle löschen und dann wieder neu erstellen und anschließend die alten MD5 Strings in deren Passwort Felder eintragen und Rechte neu laden. Das bewirkt im endeffekt das, was ich haben will; die User kennt dann mysql auch und sie haben ihre alten Passworte wieder.


    Trotzdem, wenn jemand eine sauberere Lösung hat und nutzt, dann währ mir die fürs nächste Mal lieber. Eigentlich muss es doch irgendwie mit importieren gehen....

  • Ich hab noch ein kleines Problem: Der User kunde002sql1 hat Zugriff auf die SysCP Datenbank und die neu angelegten Datenbanken.


    Wie kann ich dem denn die Rechte wieder entziehen? Der soll ja nur auf seine eigene Tabelle Berechtigungen haben...


    Vielleicht liegt das doch an dieser Zeile:

    Code
    +-----------+--------------+----------------+
    | Host      | User         | Db             |
    +-----------+--------------+----------------+
    | localhost | kunde002sql1 | kunde002sql1_% |


    Und wie lösche ich die wieder? Im phpmyadmin hab ichs versucht:
    Rechte der betreffenden DB ändern.... aber da gibts nicht "Benutzer von DB löschen" oder so ähnlich...

  • Es gibt eigentlich nur die Lösung mit dem Import in die Tabellen user und db. Ansonsten wäre es nur noch möglich die Binarys aus /var/lib/mysql/ zu sichern und wieder einzuspielen.
    Dabei muss man allerdings Penibel auf Dateirechte achten. Sonst hagelt es Fehlermeldungen.


    Zitat

    die alten MD5 Strings

    Nur zum Verständnis: Das in der user Tabelle sind keine md5's. (Was das nun ist, weiß ich aber auch nicht. *g*)


    Zu deinem Rechte Problem:
    Überprüfe mal die Rechte des Benutzers. Das geht im Menüpunkt "Rechte" in phpMyAdmin wunderbar. Da sind die ja auch wunderbar erklärt.


    Code
    | localhost | kunde002sql1 | kunde002sql1_% |


    Ich verstehe sowieso nicht, was das "_%" soll. Da muss explizit ein Datenbankname drin stehen.

  • Ich würde das ja gern rausnehmen, aber in phpmyadmin zeigt er diesen Eintrag nicht an und direkt in mysql weiß ich nicht, wie ich den eintrag bzw. namen lösche....

  • Nein steht wirklich nicht drinn. Hier nochmal ein Bild von den Anfängen der Tabelle user in der DB mysql


    Und hier die Ausführung der eben genannten Kommandos in mysql:


    So wies aussieht, hat er da nix gefunden :(

  • Hm... So langsam weiß ich da auch net mehr weiter....


    Wieso gibst du denn auf deinem Bild nicht die db-Spalte mit aus. Das wäre doch der interessante Teil an dem Bild.
    Wenn es gar nicht anders geht, starte mal den mysql Daemon neu. Vielleicht Peilt er dann ja die neuen Rechte...


    Oder füge einfach mal einen neuen Datensatz in "db" ein. Wie das aussehen muss, sieht man ja an den anderen Einträgen die sysCP gemacht hat.
    Und das flush nicht vergessen.

  • Ich bin a depp: Ich hatte dem ja auch globale Rechte gegeben :(


    Also jetzt wo ich die dem wieder weggenommen hatte, hat er auch keinen Zugriff mehr...


    Was die _% Rechte angeht: Keine Ahnung warum, aber bei irgendwas hab ich die wohl entfernt - sie stehen auf alle Fälle auch nicht mehr bei der Ausgabe "select Host, User, Db from db;" mit dabei.


    Von daher läuft jetzt alles so wies soll und ich hab durch die kleine Exkursion mein Verständnis für mysql verbessern können ;)
    Danke dir sim...