web-dev-qa-db-ja.com

LOCK TABLESエラーをスローするautomysqlbackupを停止するにはどうすればよいですか?

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にアップグレードした後に、これが最初に発生しました(私にとって)。

21
iainH

このバグ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 ,\ `

JérômeDrouetに感謝します。

あるいは、apt-packageではなくsourceforgeの元のautomysqlbackupパッケージを使用する場合、/ 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' )
32
iainH