事前准备
- 安装maradb
yum -y install mariadb mariadb-server
- 设置用户密码 修改root密码
以root身份在终端登陆(必须)输入 mysqladmin -u root -p password ex
后面的 ex 是要设置的密码
回车后出现 Enter password
输入就密码,如果没有,直接回车
- 设置远程权限方便查看mysql的还原
GRANT ALL PRIVILEGES ON . TO ‘root’@’%'IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
- window安装 MySQL链接linux,mariadb
先上代码
#!/bin/bash
#保存备份个数
number=3
#备份保存路径
backup_dir=/root/mysqlbackup
#日期
dd=`date +%Y%m%d-%H%M`
#备份工具
tool=mysqldump
#判断文件是否存在如果不存在创建
[ -d $backup_dir ] || mkdir -p $backup_dir
while [ True ]
do
read -p "请输入你的选择1.备份2.还原" select
case "$select" in
1)
read -p "请输入要备份的账户" username
read -p "请输入要备份账号的密码" password
read -p "请输入要备份的数据库名字" database_name
#备份
$tool -u $username -p$password $database_name > $backup_dir/$database_name-$dd.dump
#写创建备份日志
echo "create $backup_dir/$database_name-$dd.dupm" >> $backup_dir/log.txt
#找出需要删除的备份
delfile=`ls -l -ct $backup_dir | awk '{print $9 }' |tail -1`
#判断现在的备份数量是否大于$number
count=`ls -l -ct $backup_dir/ | awk '{print $9 }' | wc -l`
if [ $count -gt $number ]
then
#删除最早生成的备份,只保留number数量的备份
rm -rf $delfile
#写删除文件日志
echo "delete $delfile" >> $backup_dir/log.txt
fi
if [ $? -eq 0 ]
then
echo "备份成功。"
else
echo "备份失败"
fi
;;
2)
read -p "请输入要还原的账户" username
read -p "请输入要还原账号的密码" password
read -p "请输入要还原的数据库名字" database_name
#找最新备份进行还原
reduction=`ls -l -ct $backup_dir | awk '{print $9 }' | head -3 | tail -1`
#还原
mysql -u$username -p$password $database_name < /root/mysqlbackup/$reduction
#写日志
echo "reduction $reduction" >> $backup_dir/log.txt
if [ $? -eq 0 ]
then
echo "还原成功。"
else
echo "还原失败"
fi
;;
esac
done