问题描述
如何停止 automysqlbackup 的 cron.daily 脚本——从 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
由于升级到 Ubuntu 12.04 LTS,这首先发生在(对我而言)升级到 MySQL 5.5 之后。
最佳回答
This bug(已在 automysqlbackup 2.6+debian.2-1
中修复)可以通过停止 automysqlbackup 转储 performance_schema
和 information_schema
数据库来解决。这可以通过编辑 /etc/default/automysqlbackup
来完成,如下所示:
向 grep 步骤添加一个额外的管道,以从 DBNAMES 列表中删除 performance_schema
和 information_schema
。
因此,在开始 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 ,\ `
感谢杰罗姆·杜洛埃。
或者,如果您使用 sourceforge 的原始 automysqlbackup 包而不是 apt-package,则可以通过修改 /etc/automysqlbackup/myserver.conf 中包含 CONFIG_db_exclude 的行将 performance_schema 数据库添加到排除的数据库中:
# List of DBNAMES to EXLUCDE if DBNAMES is empty, i.e. ().
CONFIG_db_exclude=( 'information_schema' 'performance_schema' )