日常报表时中常常须要自动备份mysql数据库中的各类数据表,来简单的说一下如何在shell脚本下链接mysql数据库并备份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 <
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语句。sql
本文介绍了如何使用shell脚本来链接MySQL数据库并自动备份单个数据表。脚本中包含了连接数据库的参数设置,如主机、用户名、密码和数据库名,并演示了创建和初始化测试表`test`,最后通过`mysqldump`命令将`test`表导出为SQL文件。备份成功和失败的情况会被记录在日志文件中。
1072

被折叠的 条评论
为什么被折叠?



