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

Answers:


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中使用的预期效果--single-事务参数dev.mysql.com/doc/refman/5.1/en/...
Fedir RYKHTIK

3

我必须添加-单一交易

根据MySQL手册,如果您使用的是InnoDB或BDB,此选项仅保证一致的备份。与MyISAM和Heap相比,它们支持事务。


0

昨天遇到了同样的问题。

该数据库是从其他服务器迁移而来的,当我们委派了很少的用户时,存在不存在DEFINER的VIEW并导致了问题。

使用用户授予的SELECT,LOCK TABLES进行转储时,它没有显示正确的错误,但是在root用户下显示了正确的错误。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.