¿Cómo detengo el error automysqlbackup lanzando LOCK TABLES?

21

Cómo detener el script cron.daily de automysqlbackup - tal como está instalado y configurado desde apt-get install automysqlbackup- arrojando el siguiente error:

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

Esto ocurrió por primera vez (para mí) después de haber actualizado a MySQL 5.5 como consecuencia de haber actualizado a Ubuntu 12.04 LTS.

iainH
fuente

Respuestas:

32

Este error (que se corrigió automysqlbackup 2.6+debian.2-1) se puede solucionar evitando que automysqlbackup descargue las bases de datos performance_schemay information_schema. Esto se puede hacer editando de la /etc/default/automysqlbackupsiguiente manera:

Agregue una tubería adicional al paso grep para eliminar performance_schemay information_schemade la lista de DBNAMES.

Entonces, en la línea que comienza DBNAMES=, y después de | grep -v ^mysql$insertar

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

antes de | tr \\\r\\\n ,\tal manera que la línea final debería verse como

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

Gracias a Jérôme Drouet.

Alternativamente, si usa el paquete original automysqlbackup de sourceforge y no el paquete apt, puede agregar la base de datos performance_schema a sus bases de datos excluidas modificando la línea que contiene CONFIG_db_exclude en su /etc/automysqlbackup/myserver.conf:

# List of DBNAMES to EXLUCDE if DBNAMES is empty, i.e. ().
CONFIG_db_exclude=( 'information_schema' 'performance_schema' )
iainH
fuente
Tu respuesta funciona. Continúe y seleccione su respuesta como la correcta.
Stefan Lasiewski
Esta es la solución en OS X (a través de Homebrew) también.
Michael Thompson