Как мне остановить automysqlbackup, выдавая ошибку LOCK TABLES?

21

Как остановить скрипт cron.daily от automysqlbackup - как установлено и настроено apt-get install automysqlbackup- выдать следующую ошибку:

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

Впервые это произошло (для меня) после обновления до MySQL 5.5 в результате обновления до Ubuntu 12.04 LTS.

iainH
источник

Ответы:

32

Эта ошибка (которая была зафиксирована в automysqlbackup 2.6+debian.2-1) можно обойти путем остановки automysqlbackup от захоронения performance_schemaи information_schemaбаз данных. Это может быть сделано путем редактирования /etc/default/automysqlbackupследующим образом:

Добавьте дополнительный канал в grep step для удаления performance_schemaи information_schemaиз списка DBNAMES.

Итак, в строке, которая начинается DBNAMES=, и после | grep -v ^mysql$вставки

| grep -v ^performance_schema$ | grep -v ^information_schema$

до того | tr \\\r\\\n ,\, что финальная строка должна выглядеть

DBNAMES=`mysql --defaults-file=/etc/mysql/debian.cnf --execute="SHOW DATABASES" | awk '{print $1}' | grep -v ^Database$ | grep -v ^mysql$ | grep -v ^performance_schema$ | grep -v ^information_schema$ | tr \\\r\\\n ,\ `

Благодаря Жером Друэ.

В качестве альтернативы, если вы используете оригинальный пакет automysqlbackup из sourceforge, а не apt-пакет, вы можете добавить базу данных performance_schema в ваши исключенные базы данных, изменив строку, содержащую CONFIG_db_exclude в вашем /etc/automysqlbackup/myserver.conf:

# List of DBNAMES to EXLUCDE if DBNAMES is empty, i.e. ().
CONFIG_db_exclude=( 'information_schema' 'performance_schema' )
iainH
источник
Ваш ответ работает. Идите вперед и выберите правильный ответ.
Стефан Ласевский
Это исправление в OS X (через Homebrew).
Майкл Томпсон