Неможливо створити резервну копію таблиці mysql з mysqldump. Команда SELECT, LOCK TABL заборонена для "cond_in вещества" [закрито]


15

У мене виникають проблеми із запуском mysqldumpяк користувача root mysql. Коли я намагаюся створити резервну копію mysqlтаблиці, я отримую цю помилку:

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

Хтось бачив це раніше? Я бачив, що деякі посилання на мій mysql і мій mysqldump є різними версіями, але коли я запускаю, які вони знаходяться в одному каталозі.

Я запускаю MySQL 5.5.8.


1
Ви все-таки отримуєте помилку, якщо працюєте mysqldumpз --skip-add-locks?
Мартін

1
Ага, це виправило. Щойно я зрозумів, що це не таблиця mysql, це таблиця performance_schema, яку, як я бачу, в деяких документах вимагає --skip-add-locks.
Брайан Кеннеді

У мене була така ж проблема ... Я використовую automysqlbackup, я просто додав параметр --single-transactionі все працює правильно.
isccarrasco

Може проблема може бути помилковою? "LOCK TABL" може бути "LOCK TABLE"
rubo77

Відповіді:



20

--skip-add-locks не працює:

# 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

замість цього ви хочете --skip-lock-таблиці


1
Це зафіксувало це для мене. Я відредагував виконуваний файл automysqlbackup (на моїй установці, в / usr / local / bin), щоб змінити декларацію opt і opt_fullschema для додавання в --skip-lock-таблиці. Новим конфігурацією було opt = ('--quote-names' '--opt' '--skip-lock-table') та opt_fullschema = ('- всі бази даних' '--програми' '--no- data '' --skip-lock-
table

12

(Я розумію, що це приходить на 8 місяців пізніше)

Це не проблема замків, і пропоновані рішення просто обходять реальну проблему:

Програма 5,5 mysqldump не повинна експортувати performance_schemaбазу даних в першу чергу.

На основі мого попереднього досвіду я пропоную, що mysqldumpпрограма, яку ви використовували, є версією 5.1 . Як сказати? Проблема:

mysqldump --version

5.1 клієнт не знає про «футуристичної» існування , performance_schemaі тому спроби скинути його. Невідомо, що не повинно.

Спробуйте знайти версію 5.5 та використовувати її для демпінгу, не додаючи запропоновані блокування, і це має добре працювати.


2
Використання версії 5.5 та проблема не зникає
artfulrobot

1
mysqldump Ver 10.13 Distrib 5.5.32, для debian-linux-gnu (x86_64) є той самий випуск ...
Piku

2
якщо ви використовуєте automysqlbackup, як деякі користувачі вище, вам потрібно додати "performance_schema" до параметра CONFIG_db_exclude у вашому automysqlbackup.conf
Matija Nalis

Я згоден зі Шломі вище, що пропуск замків лише обходить справжню проблему. Це допомогло мені: askubuntu.com/questions/134670/…
робочий процес

0

Як згадував Шломі Ноах, не слід підтримувати резервну копію продуктивності_schema.

Простий спосіб виправити це - встановити наступне у своєму конфігураційному файлі:

CONFIG_db_exclude=( 'performance_schema' 'information_schema' )
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.