mysqldump error LOCK TABLES

9

Wenn ich einen mysqldump ausführe, wird folgende Fehlermeldung angezeigt:

mysqldump -u root -ppassword --databases information_schema > test.sql
mysqldump: Got error: 1044: Access denied for user 'root'@'localhost' to database 'information_schema' when using LOCK TABLES

Wie kann ich das beheben?

Tom
quelle
Hängt von Ihrer Speicher-Engine ab. Siehe: stackoverflow.com/questions/104612/…
JasonWoof

Antworten:

7

Wenn Sie die Datenbank information_schema sichern müssen, fügen Sie ihr --skip-lock-tables hinzu.

mysqldump speichert die Datenbank INFORMATION_SCHEMA standardmäßig nicht. Ab MySQL 5.1.38 gibt mysqldump INFORMATION_SCHEMA aus, wenn Sie es explizit in der Befehlszeile benennen, obwohl Sie derzeit auch die Option --skip-lock-tables verwenden müssen. Vor 5.1.38 ignoriert mysqldump INFORMATION_SCHEMA stillschweigend, auch wenn Sie es explizit in der Befehlszeile benennen.

http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html


quelle
In InnoDB verwenden Sie den Parameter --single-transaction für den erwarteten Effekt dev.mysql.com/doc/refman/5.1/en/…
Fedir RYKHTIK
3

Ich musste --single-transaction hinzufügen

Laut MySQL-Handbuch garantiert diese Option nur dann eine konsistente Sicherung, wenn Sie InnoDB oder BDB verwenden. Im Gegensatz zu MyISAM und Heap unterstützen sie Transaktionen.

Tom
quelle
0

Habe gestern das gleiche Problem.

Die Datenbank wurde von einem anderen Server migriert, und als wir einige Benutzer gelöscht haben, gab es VIEW mit nicht vorhandenem DEFINER, das das Problem verursachte.

Es wird kein korrekter Fehler angezeigt, wenn es mit der Benutzergewährung SELECT, LOCK TABLES ausgegeben wurde, aber unter dem Root-Benutzer wurde ein korrekter Fehler angezeigt.

Jakub Pinkas
quelle