Не могу сделать резервную копию таблицы mysql с помощью mysqldump. Команда SELECT, LOCK TABL запрещена для 'cond_instances' [закрыто]


15

У меня проблемы с запуском mysqldumpот имени пользователя root. Когда я пытаюсь сделать резервную копию 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-tables. Новый конфиг был opt = ('--quote-names' '--opt' '--skip-lock-tables') и opt_fullschema = ('--all-database' '--routines' '--no- data '' --skip-lock-tables ')
Тед Пеннингс

12

(Я понимаю, что это приходит на 8 месяцев позже)

Это не проблема блокировок, и предлагаемые решения просто обходят реальную проблему:

5,5 туздЫшпра приложение не должно экспортировать 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
Матия Налис

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

0

Как упомянул Шломи Ноах, для Performance_schema резервное копирование не предполагается.

Самый простой способ исправить это - установить следующее в вашем конфигурационном файле:

CONFIG_db_exclude=( 'performance_schema' 'information_schema' )
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.