MySQL备份时出现:Warning: Skipping the data of table mysql.event.

投稿者: | 2014年10月25日

今天写了一个用来备份MySQL的脚本文件,其内容如下:

[root@centos ~]# vim mysql-backup.sh ← 编辑一个用于备份MySQL数据库的脚本文件
#!/bin/bash

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

# 指定备份文件的保留天数(31天)
PERIOD=31

# 指定备份用的目录
BACKDIR=/backup/mysql

# 指定备份文件名(注:以日期来命名备份文件名)
FILENAME=`date +%Y%m%d`

# MySQL root的密码
ROOTPASS=xxxxxxxx

# 建立备份用的目录
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 ] &&
mysqldump -u root -p$ROOTPASS $dbname > $BACKDIR/$dbname.sql | logger -t mysqldump
done

# 压缩生成的数据文件
tar zcvf $BACKDIR/$FILENAME.sql.tar.bz2 $BACKDIR

# 更改访问权限
chmod 700 $BACKDIR/$FILENAME.sql.tar.bz2

# 删除过程文件
rm $BACKDIR/$dbname.sql

# 删除旧的备份文件
OLDFILE=`date --date "$PERIOD days ago" +%Y%m%d`
rm -f $BACKDIR/$OLDFILE.sql.tar.bz2

执行上述脚本后,出现了一个警告信息:

Warning: Skipping the data of table mysql.event.

经调查发现,这是MySQL5.1.6版本以后追加的一项新处理,在于让人们确认是否需要备份“mysql.event”这个表。其修改部分如下:

修改前

mysqldump -u root -p$ROOTPASS $dbname > $BACKDIR/$dbname.sql | logger -t mysqldump

如需要备份“mysql.event”表,修改为:

mysqldump -u root -p$ROOTPASS --events $dbname > $BACKDIR/$dbname.sql | logger -t mysqldump

如不需要备份“mysql.event”表,修改为:

mysqldump -u root -p$ROOTPASS --events --ignore-table=mysql.event $dbname > $BACKDIR/$dbname.sql | logger -t mysqldump

参考链接:
Warning: Skipping the data of table mysql.event
mysql の定期的なバックアップ
【 date 】 日付や時刻を表示,設定する

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です