# 首先需要创建备份用户:
create user bkpuser@'localhost' identified by 'bkpuser@123';
grant all on *.* to 'bkpuser'@'localhost';
FLUSH PRIVILEGES;
# 查看权限
mysql> show grants for 'bkpuser'@'%';
复制
#!/bin/bash
# description:
# 此脚本为mysql备份脚本
# author: morb
# 数据库账号密码IP
USER="bkpuser"
PASSWORD="bkpuser@123"
IP="localhost"
PORT="3306"
# 需要备份的数据数据库
DATABASES=`/usr/local/mysql/bin/mysql -u ${USER} -p${PASSWORD} -e 'show databases' | egrep -v 'schema$|^Database' |xargs`
#备份命令
mysqldump_lnk="/usr/local/mysql/bin/mysqldump -u${USER} -p${PASSWORD} -h${IP} -P${PORT}"
# 备份目录、备份日志、备份时间
DATEDIR=`date +%Y%m%d`
BACKUP_DIR=/data1/mysqldump_db/${DATEDIR}
LOGFILE=${BACKUP_DIR}/data_backup.log
DATE=`date +%Y%m%d_%H%M`
# 判断备份目录是否存在
test ! -d ${BACKUP_DIR} && { mkdir $BACKUP_DIR -p || { echo "备份目录创建失败">> $LOGFILE; exit 1; } }
cd $BACKUP_DIR
#开始备份之前,将备份信息头写入日记文件
echo "--------------------" >> $LOGFILE
echo "BACKUP DATE:" $(date +"%y-%m-%d %H:%M:%S") >> $LOGFILE
echo "-------------------" >> $LOGFILE
function select_backup(){
# select databases backup
for DATABASE in ${DATABASES[@]};do
${mysqldump_lnk} --events -R --opt --set-gtid-purged=OFF --single-transaction --master-data=2 --flush-logs $DATABASE |gzip >${BACKUP_DIR}\/${DATABASE}_${DATE}.sql.gz
if [ $? -eq 0 ];then
echo "$DATE--$DATABASE is backup succeed" >> $LOGFILE
else
echo "Database Backup Fail!" >> $LOGFILE
fi
done
}
function del_backup(){
# 删除30天以上的备份文件(看需求自己更改)
find $BACKUP_DIR -type f -mtime +30 -name "*.gz" |xargs rm -f;
}
main()
{
select_backup;
del_backup
}
main > ./setup.log 2>&1复制
文章转载自运维之旅,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
墨天轮个人数说知识点合集
JiekeXu
425次阅读
2025-04-01 15:56:03
MySQL数据库当前和历史事务分析
听见风的声音
419次阅读
2025-04-01 08:47:17
MySQL 生产实践-Update 二级索引导致的性能问题排查
chengang
379次阅读
2025-03-28 16:28:31
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
342次阅读
2025-04-15 23:49:58
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
342次阅读
2025-04-17 17:02:24
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
322次阅读
2025-04-15 14:48:05
云和恩墨杨明翰:安全生产系列之MySQL高危操作
墨天轮编辑部
302次阅读
2025-03-27 16:45:26
openHalo问世,全球首款基于PostgreSQL兼容MySQL协议的国产开源数据库
严少安
288次阅读
2025-04-07 12:14:29
记录MySQL数据库的一些奇怪的迁移需求!
陈举超
189次阅读
2025-04-15 15:27:53
[MYSQL] 服务器出现大量的TIME_WAIT, 每天凌晨就清零了
大大刺猬
179次阅读
2025-04-01 16:20:44