远程备份mysql数据库
1.mysql需要有远程访问权限
这里我为了方便,就设置所有地址都可以访问了。如果没有,在数据库中执行如下命令
创建备份用户及授权
>grant select,lock tables on *.* to "backup"@"192.168.233.%" identified by "123456";
#授权一个用户,并限制地址在192.168.233.*网段。安全性更高
>grant all on *.* to "root"@"%" identified by "123456";
#授权所有地址都可以远程登录
>flush privileges;
>select Host,User,Password from mysql.user;
2.shell脚本编写
#!/bin/bash
#2020年7月6日
#backup msyql_db.
#by author TuDestiny
######################
MYSQL_IP="192.168.233.129"
MYSQL_USER="root"
MYSQL_PASSWD="123456"
date=`date +%Y%m%d%H%M`
if (($# < 1));then
echo "输入需要备份的数据库名"
exit 1
fi
for database in $*
do
mysqldump -h $MYSQL_IP -u$MYSQL_USER -p${MYSQL_PASSWD} -B ${database}>${database}${date}.sql
if [ $? -ne 0 ];then
echo "数据库${database}备份失败,YOU are A FOOL!!!"
exit 1
else
echo "数据库${database}备份成功,YOU are GREAT!!!"
fi
done
3.执行结果
[Warning] Using a password on the command line interface can be insecure.此告警为密码不够安全,可以将密码设置复杂一些,可解决