Как я могу игнорировать ошибки с 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.

Хорошо, я думал, что это не удалось, но, видимо, это сработало. Похоже, что дамп завершен, но ошибки так и произошли ближе к концу, так что это выглядело так, как будто ошибки сделали дамп неудачным.
Чад Джонсон

Он уже предоставил опцию --force в команде, которую он нам показал.
Zoredache

1
извини не понял.
chocripple

1
@ Чед Джонсон, человек может утверждать, что если вы не можете получить чистую резервную копию без использования --force, то ваша резервная копия не удалась. Опция force будет подавлять ошибки, которые могут быть важны. Пожалуйста, не используйте --force в сценарии резервного копирования, от которого вы будете зависеть.
Zoredache

Это просто, чтобы я мог получить дамп базы данных для работы локально. Ничего важного.
Чад Джонсон

1

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


2
Потому что моя компания заставляет меня пройти через другой отдел :(
Чад Джонсон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.