Rolf B: Datenbank über SSH leeren

Beitrag lesen

Hallo Hank,

füge die Option --no-tablespaces hinzu und die Forderung nach dem PROCESS Privileg sollte verschwinden. Zumindest deute ich das MYSQL-Handbuch so. Während der mysqldump-Ausführung machen die fehlenden Rechte keine Probleme - hier wird ja nur ein SQL Script generiert. Aber wenn Du das erzeugte Script nachher ausführen willst und --no-tablespaces fehlt, dann will er außer den Tabellen auch Tablespaces anlegen und dafür braucht man entsprechende Rechte.

Die Frage, die Du Dir aber stellen musst, ist: Wie gehe ich mit den InnoDB Tablespaces meiner Datenbank um? Will ich die löschen? Sollen sie erhalten bleiben?

Aber grundsätzlich ist das, was Du da machst, ein Schuss von hinten durch die Brust ins Auge.

  • Du lässt mysqldump mit --no-data laufen. Seinen Hauptzweck, nämlich ein Script für eine logische Datensicherung zu erzeugen, erfüllt es damit nicht mehr
  • Statt dessen fügst Du mit --add-drop-table hinzu, dass das generierte Script DROP TABLE statements für jede gesicherte Tabelle hinzu bekommt.
  • Und dann suchst du mit GREP ^DROP alle Zeilen, die mit DROP beginnen, und verfütterst die an die generische MYSQL Batch Engine.

Ohne --no-tablespace könnte es gut sein, dass da auch noch DROP TABLESPACE Anweisungen im Script verbleiben. Das solltest Du Dir gut anschauen, bevor Du es an das mysql Tool übergibst.

Andererseits - ein Script, dass blindlings alle Tables einer DB droppt, ist vermutlich einfacher nicht zu erzeugen...

Rolf

--
sumpsi - posui - obstruxi