Jak zignorować błędy w mysqldump?


12

Zrzucam bazę danych

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

i wtedy po prostu ustaje zrzut.

Jak sprawić, by mysqldump kontynuował działanie, gdy napotyka takie problemy? 10 minut Google nie zaoferowało żadnej pomocy.

Oto polecenie, którego użyłem:

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

Odpowiedzi:


27

człowiek mysqldump

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

Okej, myślałem, że to się nie udaje, ale najwyraźniej zadziałało. Wygląda na to, że zrzut się skończył, ale tak się złożyło, że błędy wystąpiły pod koniec, więc wyglądało na to, że błędy spowodowały błąd zrzutu.
Chad Johnson,

Udostępnił już opcję --force w poleceniu, które nam pokazał.
Zoredache,

1
przepraszam nie zdawałem sobie sprawy.
chocripple,

1
@Chad Johnson, osoba może argumentować, że jeśli nie można uzyskać czystej kopii zapasowej bez użycia opcji --force, oznacza to, że kopia zapasowa nie powiodła się. Opcja wymuszenia eliminuje błędy, które mogą być ważne. Nie używaj opcji --force w skrypcie kopii zapasowej, na którym będziesz polegać.
Zoredache,

Jest to po prostu dlatego, że mogę uzyskać zrzut bazy danych do pracy lokalnie. Nic ważnego.
Chad Johnson,

1

AFIAK, nie możesz. Potrzebujesz wystarczających uprawnień, aby uruchomić mysqldump. Dlaczego nie przyznałeś executeuprawnienia temu działającemu użytkownikowi?


2
Ponieważ moja firma zmusza mnie do przejścia przez inny dział :(
Chad Johnson,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.