web-dev-qa-db-fra.com

Comment puis-je arrêter de automysqlbackup en générant l'erreur LOCK TABLES?

Comment arrêter le script cron.daily d'automysqlbackup - tel qu'installé et configuré à partir de apt-get install automysqlbackup - en générant 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

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

21
iainH

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

Ajoutez un canal supplémentaire à l'étape grep pour supprimer performance_schema et information_schema de la liste de DBNAMES.

Donc, dans la ligne qui commence DBNAMES=, et après | grep -v ^mysql$ insérez

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

avant | tr \\\r\\\n ,\ tel que la dernière ligne 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 paquet apt, vous pouvez ajouter la base de données performance_schema à vos bases de données exclues en modifiant la ligne contenant 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' )
32
iainH