mysqldumpエラーロックテーブル


9

mysqldumpを実行すると、次のエラーが発生します。

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

どうすれば修正できますか?


ストレージエンジンによって異なります。参照:stackoverflow.com/questions/104612/…–
JasonWoof

回答:


7

information_schemaデータベースをダンプする必要がある場合は、それに--skip-lock-tablesを追加します。

mysqldumpは、デフォルトではINFORMATION_SCHEMAデータベースをダンプしません。MySQL 5.1.38以降、コマンドラインで明示的に名前を付けると、mysqldumpはINFORMATION_SCHEMAをダンプしますが、現在--skip-lock-tablesオプションも使用する必要があります。5.1.38より前のバージョンでは、mysqldumpは、コマンドラインで明示的に名前を付けても、暗黙的にINFORMATION_SCHEMAを無視します。

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


InnoDBでは、予想される効果dev.mysql.com/doc/refman/5.1/en/…に
Fedir RYKHTIK '29

3

--single-transactionを追加する必要がありました

MySQLマニュアルによると、このオプションは、InnoDBまたはBDBを使用している場合にのみ、一貫したバックアップを保証します。MyISAMおよびHeapとは異なり、トランザクションをサポートします。


0

昨日同じ問題が発生しました。

データベースが他のサーバーから移行され、少数のユーザーを削除したときに、存在しないDEFINERを持つVIEWがあり、それが問題の原因でした。

ユーザー許可SELECT、LOCK TABLESでダンプされたときに適切なエラーは表示されませんが、rootユーザーの下では正しいエラーが表示されました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.