comment puis-je empêcher automysqlbackup de lancer l'erreur LOCK TABLES?

21

Comment arrêter le script cron.daily d'automysqlbackup - tel qu'il est installé et configuré à partir de apt-get install automysqlbackup- lançant l'erreur suivante:

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

Cela s'est produit pour la première fois (pour moi) après avoir effectué une mise à niveau vers MySQL 5.5 suite à une mise à niveau vers Ubuntu 12.04 LTS.

iainH
la source

Réponses:

32

Ce bogue (qui a été corrigé automysqlbackup 2.6+debian.2-1) peut être contourné en empêchant automysqlbackup de vider les bases de données performance_schemaet information_schema. Cela peut être fait en modifiant /etc/default/automysqlbackupcomme suit:

Ajoutez un canal supplémentaire à l'étape grep pour supprimer performance_schemaet information_schemade la liste des DBNAMES.

Donc, dans la ligne qui commence DBNAMES=, et après l' | grep -v ^mysql$insertion

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

avant de | tr \\\r\\\n ,\telle sorte que la ligne finale devrait ressembler à

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

Merci à Jérôme Drouet.

Si vous utilisez le package automysqlbackup d'origine de sourceforge et non le package apt, vous pouvez également ajouter la base de données performance_schema à vos bases de données exclues en modifiant la ligne qui contient CONFIG_db_exclude dans votre /etc/automysqlbackup/myserver.conf:

# List of DBNAMES to EXLUCDE if DBNAMES is empty, i.e. ().
CONFIG_db_exclude=( 'information_schema' 'performance_schema' )
iainH
la source
Votre réponse fonctionne. Allez-y et sélectionnez votre réponse comme étant la bonne.
Stefan Lasiewski
C'est aussi le correctif sur OS X (via Homebrew).
Michael Thompson