Как я могу игнорировать ошибки с mysqldump?

12

При сбросе базы данных я получаю

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

и тогда сброс просто прекращается.

Как заставить mysqldump продолжать работу, когда он сталкивается с такими проблемами? 10 минут Google не предложил никакой помощи.

Вот команда, которую я использовал:

mysqldump -u username -h localhost --port=4406 -p --databases database_name --skip-lock-tables --force > database_name.sql
Чед Джонсон
источник

Ответы:

27

человек mysqldump

-f, --force         Continue even if we get an sql-error.
chocripple
источник
Хорошо, я думал, что это не удалось, но, видимо, это сработало. Похоже, что дамп завершен, но ошибки так и произошли ближе к концу, так что это выглядело так, как будто ошибки сделали дамп неудачным.
Чад Джонсон
Он уже предоставил опцию --force в команде, которую он нам показал.
Zoredache
1
извини не понял.
chocripple
1
@ Чед Джонсон, человек может утверждать, что если вы не можете получить чистую резервную копию без использования --force, то ваша резервная копия не удалась. Опция force будет подавлять ошибки, которые могут быть важны. Пожалуйста, не используйте --force в сценарии резервного копирования, от которого вы будете зависеть.
Zoredache
Это просто, чтобы я мог получить дамп базы данных для работы локально. Ничего важного.
Чад Джонсон
1

AFIAK, вы не можете. Вам нужно достаточно привилегий для запуска mysqldump. Почему вы не дали executeправа пользователю, который работает?

кванты
источник
2
Потому что моя компания заставляет меня пройти через другой отдел :(
Чад Джонсон