当前位置: 首页>>技术教程>>正文


如何停止 automysqlbackup 抛出 LOCK TABLES 错误?

, ,

问题描述

如何停止 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_schemainformation_schema 数据库来解决。这可以通过编辑 /etc/default/automysqlbackup 来完成,如下所示:

向 grep 步骤添加一个额外的管道,以从 DBNAMES 列表中删除 performance_schemainformation_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' )

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12533.html,未经允许,请勿转载。