Як ігнорувати помилки з 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
вибачте не зрозумів.
хоріпп

1
@Chad Johnson, людина може стверджувати, що якщо ви не можете отримати чисту резервну копію без використання --force, ваша резервна копія не вдалася. Варіант сили придушить помилки, які можуть бути важливими. Будь ласка, не використовуйте --force в резервному сценарії, від якого ви будете залежати.
Zoredache

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

1

AFIAK, ти не можеш. Для запуску вам потрібно достатньо привілеїв mysqldump. Чому ви не надали executeпривілею користувачеві, який працює?


2
Тому що моя компанія змушує мене пройти інший відділ :(
Чад Джонсон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.