mysqlhotcopyのエラー

先日、MySQLをアップデートしてから、mysql-backup.shの実行でエラーが出て、rootからメールが届くようになった。

内容は、

DBD::mysql::db do failed: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'cond_instances' at /usr/bin/mysqlhotcopy line 489.

というもの。

よく判らないが、cond_instancesというテーブルで引っ掛かっているようだ。

調べると、そのテーブルがあるのは、performance_schemaデータベースに存在していた。

結論、バックアップ対象から外した。

# vi mysql-backup.sh

#!/bin/bash

PATH=/usr/local/sbin:/usr/bin:/bin

# バックアップ先ディレクトリ
BACKDIR=/home/backup/mysql

# MySQLrootパスワード
ROOTPASS=*******

# バックアップ先ディレクトリ再作成
rm -rf $BACKDIR
mkdir -p $BACKDIR

# データベース名取得
DBLIST=`ls -p /var/lib/mysql | grep / | tr -d /`

# データベースごとにバックアップ
for dbname in $DBLIST
do
[ $dbname = "performance_schema" ] && continue  ←追加
table_count=`mysql -u root -p$ROOTPASS -B -e "show tables" $dbname|wc -l`
[ $table_count -ne 0 ] &&
mysqlhotcopy $dbname -u root -p $ROOTPASS $BACKDIR | logger -t mysqlhotcopy
done
# ./mysql-backup.sh

エラーが出なくなった。

 

いいね! & シェア お願いします。

コメントは受け付けていません。