先日、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
エラーが出なくなった。