如何忽略mysqldump的错误?


12

转储数据库时,

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

然后转储就停止了。

遇到此类问题时,如何使mysqldump继续运行?Google的10分钟没有提供任何帮助。

这是我使用的命令:

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

Answers:


27

man mysqldump

-f, --force         Continue even if we get an sql-error.

好的,我以为这是失败的,但显然确实奏效了。转储似乎已经完成,但是恰好错误恰好发生在最后,所以看起来错误使转储失败了。
乍得·约翰逊

他已经在显示给我们的命令中提供了--force选项。
Zoredache

1
对不起没意识到。
chocripple

1
@Chad Johnson,有人可能会争辩说,如果不使用--force无法获得干净的备份,则备份确实会失败。强制选项将消除可能很重要的错误。请不要在要使用的备份脚本中使用--force。
Zoredache

这样做是为了让我可以转储数据库以便在本地使用。没有要紧的。
乍得·约翰逊

1

AFIAK,您不能。您需要足够的特权才能运行mysqldump。您为什么不给execute正在运行的用户特权?


2
因为我的公司强迫我去另一个部门:(
乍得·约翰逊
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.