Como faço para parar o automysqlbackup lançando o erro LOCK TABLES?

21

Como parar o script cron.daily do automysqlbackup - conforme instalado e configurado apt-get install automysqlbackup- lançando o seguinte erro:

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

Isso ocorreu pela primeira vez (após a atualização para o MySQL 5.5) como consequência da atualização para o Ubuntu 12.04 LTS.

iainH
fonte

Respostas:

32

Esse bug (que foi corrigido automysqlbackup 2.6+debian.2-1) pode ser contornado, impedindo o automysqlbackup de descarregar os bancos de dados performance_schemae information_schema. Isso pode ser feito editando da /etc/default/automysqlbackupseguinte maneira:

Adicione um pipe adicional ao grep para remover performance_schemae information_schemada lista de DBNAMES.

Então, na linha que inicia DBNAMES=, e depois da | grep -v ^mysql$inserção

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

antes | tr \\\r\\\n ,\, para que a linha final pareça

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 ,\ `

Obrigado a Jérôme Drouet.

Como alternativa, se você usar o pacote automysqlbackup original do sourceforge e não o apt-package, poderá adicionar o banco de dados performance_schema aos bancos de dados excluídos, modificando a linha que contém CONFIG_db_exclude no seu /etc/automysqlbackup/myserver.conf:

# List of DBNAMES to EXLUCDE if DBNAMES is empty, i.e. ().
CONFIG_db_exclude=( 'information_schema' 'performance_schema' )
iainH
fonte
Sua resposta funciona. Vá em frente e selecione sua resposta como a correta.
27613 Stefan Lasiewski #
Esta é a correção no OS X (via Homebrew) também.
Michael Thompson