Nie można wykonać kopii zapasowej tabeli mysql za pomocą mysqldump. Odmowa polecenia SELECT, LOCK TABL dla „cond_instances” [zamknięte]

15

Mam problem z uruchomieniem mysqldumpjako użytkownik root mysql. Podczas próby utworzenia kopii zapasowej mysqltabeli pojawia się ten błąd:

mysqldump: Got error: 1142: SELECT,LOCK TABL command denied to user
'root'@'localhost' for table 'cond_instances' when using LOCK TABLES

Czy ktoś to widział wcześniej? Widziałem pewne odniesienia do mojego mysql i mysqldump, które są różnymi wersjami, ale kiedy uruchamiam, są one w tym samym katalogu.

Korzystam z MySQL 5.5.8.

Bryan Kennedy
źródło
1
Czy nadal pojawia się błąd po uruchomieniu mysqldumpz --skip-add-locks?
Martin
1
Aha, to naprawiło. Właśnie zdałem sobie sprawę, że to nie była tabela mysql, to była tabela performance_schema, którą widzę w niektórych dokumentach wymaga --skip-add-locks.
bryan kennedy
Miałem ten sam problem ... Używam automysqlbackup Właśnie dodałem parametr --single-transactioni wszystko działa poprawnie.
isccarrasco
Może problemem może być literówka? „LOCK TABL” może być „LOCK TABL”
rubo77

Odpowiedzi:

3

Dodaj --skip-add-locks do komendy mysqldump

Jaskółka oknówka
źródło
20

--skip-add-locks nie działa:

# mysqldump -u root -p`cat mysqlRoot.txt` --databases performance_schema --routines --quote-names --skip-add-locks > mysql_performance_schema

mysqldump: Got error: 1142: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'cond_instances' when using LOCK TABLES

zamiast tego chcesz --skip-lock-tables

sabujp
źródło
1
Naprawiłem to dla mnie. Edytowałem plik wykonywalny automysqlbackup (w mojej instalacji, w / usr / local / bin), aby zmodyfikować deklarację opt i opt_fullschema w celu dodania do tabel --skip-lock-lock. Nowa konfiguracja to opt = ('- quote-names' '--opt' '--skip-lock-tables') i opt_fullschema = ('--all-databases' '--routines' '--no- data '' --skip-lock-tables ')
Ted Pennings
12

(Zdaję sobie sprawę, że spóźnia się 8 miesięcy)

To nie jest problem zamków, a oferowane rozwiązania omijają prawdziwy problem:

Aplikacja 5.5 mysqldump nie powinna eksportować plikuperformance_schema bazy danych.

Na podstawie moich wcześniejszych doświadczeń sugeruję, że mysqldumpprogram, którego użyłeś, jest wersją 5.1 . Jak powiedzieć? Kwestia:

mysqldump --version

5,1 klient jest nieświadomy „futurystyczny” istnieniaperformance_schema i dlatego próbuje go zrzucić. Nie wiadomo, że nie powinno.

Spróbuj znaleźć wersję 5.5 i użyj jej do zrzucania, bez dodawania sugerowanych blokad, a to powinno działać dobrze.

Shlomi Noach
źródło
2
Korzystanie z wersji 5.5 i problem występuje nadal
artfulrobot
1
mysqldump Ver 10.13 Distrib 5.5.32, dla debian-linux-gnu (x86_64) ma ten sam problem ...
Piku
2
jeśli używasz automysqlbackup jak niektórzy z powyższych użytkowników, musisz dodać parametr „performance_schema” do parametru CONFIG_db_exclude w pliku automysqlbackup.conf
Matija Nalis
Zgadzam się ze Shlomi powyżej, że pominięcie zamków tylko omija prawdziwy problem. Pomogło mi to: askubuntu.com/questions/134670/…
workflow
0

Jak wspomniała Shlomi Noach, performance_schema nie powinna być tworzona.

Prostym sposobem na rozwiązanie tego jest ustawienie następujących parametrów w pliku konfiguracyjnym:

CONFIG_db_exclude=( 'performance_schema' 'information_schema' )
dumolibr
źródło