linux自动备份mysql数据库
备份脚本记录一下--(单个数据库)
2021-11-15
1.新建shell脚本:vim **.sh
#!/bin/bashCKUP=/data/backup/db #获取当前时间 DATETIME=$(date +%Y_%m_%d_%H%M%S) #可以输出变量调试 echo $DATETIME echo "========开始备份=========" echo "========备份路径 $BACKUP/$DATETIME.tar.gz=========" #主机 HOST=localhost #用户名 DB_USER=root #密码 DB_PASSWOLD=123456 #备份数据库名 DATABASE=aeaicrm #创建备份路径,如果存在就使用,否则就创建 [ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME" #执行MySQL的备份数据库指令 mysqldump $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz #打包备份文件 cd $BACKUP tar -zcvf $DATETIME.tar.gz $DATETIME #删除临时文件 rm -rf $BACKUP/$DATETIME #删除十天前的备份文件/【-exec rm -rf {} \;】--删除找到的文件 find $BACKUP -mtime +7 -name "*.tar.gz" -exec rm -rf {} \; echo "=========备份文件成功========="
2. 创建任务计划:
crontab -e
3.问题记录
我的报错信息:
解决:
修改配置文件my.cnf
添加:
[mysqldump]
User=root
Password=mypassword
保存退出.
Shell脚本不指定用户名跟密码:
可能有更好的解决办法....
更新shell脚本---------------(多个数据库)
2022-03-16
#!/bin/bash #MySQL用户 user=test #MySQL密码 userPWD=youpassword # 需要定时备份的数据表列表 dbNames=(aeaicrm activiti chronicdisease lis oa) # 每次的备份数据以日期创建文件夹存放,同时删除过期备份 # 此处以保留1个月的备份数据为例 DATE=`date -d "now" +%Y%m%d%H` ODATE=`date -d "-1 month" +%Y%m%d%H` newdir=/home/backup_mysql/$DATE olddir=/home/backup_mysql/$ODATE # 删除过期备份数据 if [ -d $olddir ]; then rm -rf $olddir fi # 创建新备份文件夹 mkdir $newdir # 对备份数据库列表的所有数据库备份 for dbName in ${dbNames[*]} do dumpFile=$dbName-$DATE.sql.gz mysqldump -u$user -p$userPWD $dbName | gzip > $newdir/$dumpFile done
==============================分割线==========================================
mysqldump相关:
1.备份数据库
#mysqldump --opt -d 数据库名 -u root -p > xxx.sql
#mysqldump DB_NAME >数据库备份名
#mysqldump -A -uUSER_NAME -pPASSWORD DB_NAME>数据库备份名
#mysqldump -d -A --add-drop-table -uroot -p >xxx.sql
2.导出结构不导出数据
mysqldump --opt -d 数据库名 -u root -p > xxx.sql
3.导出数据不导出结构
mysqldump -t 数据库名 -uroot -p > xxx.sql
4.导出数据和表结构
mysqldump -uroot -p 数据库名 > xxx.sql
5.导出特定表的结构
mysqldump -uroot -p -B 数据库名 --table 表名 > xxx.sql
6.导入数据
mysqldump导出的是完整的SQL语句,所以用mysql客户程序就能把数据导入.
#mysql 数据库名 < 文件名
或者
#source /tmp/xxx.sql
本文来自博客园,作者:少年Dev,转载请注明原文链接:https://www.cnblogs.com/yaodun55/p/15555435.html