平常报表时中经常需要自动备份mysql数据库中的各种数据表,来简单的说一下如何在shell脚本下连接mysql数据库并备份mysql数据表。
#!/bin/bash
HOST=127.0.0.1 #ip (127.0.0.1表示本机地址)
USER=LGL #数据库用户名
PASSWORD=123 #数据库密码
DATABASE=backup #数据库名
BACKUP_PATH=/home/lgl/bkdata #备份目录
logfile=/home/lgl/bkdata/data.log #记录日志
#连接mysql数据库
mysql -h $HOST -u $USER -p$PASSWORD -s $DATABASE <<EOF
drop table if exists test;
create table test (
id int(10) not null,
name varchar(10) not null
);
insert into test values(2016,'LiuBei'); //测试数据
insert into test values(2017,'GuanYu');
insert into test values(2018,'ZhangFei');
EOF
if [ $? -ne 0 ]
then
echo "Init data fail!">>$logfile
exit 4
fi
echo "Init data Successful!">>$logfile
#如果不存在备份目录就创建
if [ ! -d $BACKUP_PATH ]
then
mkdir $BACKUP_PATH
fi
#进入备份目录
cd $BACKUP_PATH
#导出数据表test到test.sql中
mysqldump -h $HOST -u $USER -p$PASSWORD $DATABASE test > test.sql
if [ $? = 0 ]
then
echo "test backup Successful!">>$logfile
else
echo "test backup fail!">>$logfile
exit 4
fi
注意:EOF中只能使用mysql语句。