Wie ignoriere ich Fehler mit mysqldump?

12

Wenn ich eine Datenbank entleere, bekomme ich

mysqldump: Couldn't execute 'show create table `some_table`': execute command denied to user 'some_user'@'%' for routine 'some_routime' (1370)

und dann hört das Dumping einfach auf.

Wie kann ich mysqldump fortsetzen, wenn solche Probleme auftreten? 10 Minuten Google hat keine Hilfe angeboten.

Hier ist der Befehl, den ich verwendet habe:

mysqldump -u username -h localhost --port=4406 -p --databases database_name --skip-lock-tables --force > database_name.sql
Chad Johnson
quelle

Antworten:

27

Mann mysqldump

-f, --force         Continue even if we get an sql-error.
Chocripple
quelle
Okay, ich dachte, das scheitert, aber anscheinend hat es funktioniert. Der Dump scheint beendet zu sein, aber die Fehler sind zufällig gegen Ende aufgetreten, sodass es so aussah, als hätten die Fehler den Dump zum Scheitern gebracht.
Chad Johnson
Er hat die Option --force bereits in dem Befehl angegeben, den er uns gezeigt hat.
Zoredache
1
Entschuldigung, nicht bemerkt.
Chocripple
1
@Chad Johnson, eine Person könnte argumentieren, dass Ihre Sicherung fehlgeschlagen ist, wenn Sie ohne --force kein sauberes Backup erhalten können. Die Force-Option unterdrückt möglicherweise wichtige Fehler. Bitte verwenden Sie --force nicht in einem Sicherungsskript, von dem Sie abhängig sind.
Zoredache
Dies ist nur, damit ich einen Speicherauszug einer Datenbank erhalten kann, mit der ich lokal arbeiten kann. Nichts Wichtiges.
Chad Johnson
1

AFIAK, das kannst du nicht. Sie benötigen genügend Berechtigungen, um ausgeführt zu werden mysqldump. Warum haben Sie dem executelaufenden Benutzer keine Berechtigung erteilt?

Quanten
quelle
2
Weil meine Firma mich zwingt, eine andere Abteilung zu durchlaufen :(
Chad Johnson