文章目录
概要
mysql安装在Linux环境中如何设置自动备份
技术细节
1.先创建shell脚本
touch mysqldump.sh
vim mysqldump.sh
接着使用vi或者vim工具来进行脚本编辑
注意
#备份地址:创建自己的备份保存路径
#需要备份的数据库名称:可以使用mysql -uroot -p ;
show databases; 来进行查看
**
mysqldump前面一定要加入绝对路径,这样定时任务自动执行的时候才能生成备份文件,要不生成的备份文件为0btys
**
例如/opt/mysql/bin/mysqldump
#!/bin/bash
# Name:mysqldump.sh
#
#备份地址:创建自己的备份保存路径
backupdir=/data/mysqlbak
#备份文件后缀时间
time=_` date +%Y_%m_%d_%H_%M_%s `
#需要备份的数据库名称
db_name=
#MysqL 用户名
db_user=
#MysqL 密码
db_pass=
#====添加绝对路径======/opt/mysql/bin/
/opt/mysql/bin/mysqldump -u $db_user -p$db_pass $db_name | gzip > $backupdir/$db_name$time.sql.gz
#删除一天之前的备份文件
#find $backupdir -name $db_name"*.sql.gz" -type f -mtime +1 -exec rm -rf {} \; > /dev/null 2>&1
echo “success”
2.使用crontab来进行自动执行备份
#查看是否有任务
crontab -l
#编辑定时任务
crontab -e
#删除
crontab -r
进入crontab后和vim一样 按i 进入insert模式
* 23 * * * /data/mysqlbak/bak_sh/mysqldump.sh
3.crontab用法
#编辑crontab文件设置每天晚上23点执行备份脚本
* 23 * * * /data/mysql_nacos_back.sh
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
小结
一定要给.sh的脚本赋予777的权限
chmod 777 <filepath or filename>
创建的文件夹也要赋权
mysql数据库也需要授权,根据执行的情况来看
#登录数据库
mysql -uroot -p
#查看数据库名称
show databases;
#查看你的数据库权限
show grants for nacos;
#授权process的权限 %可以换成你的本机名字,不知道可以使用%来代替
grant process on *.* to '数据库名称'@'%';
#刷新数据库权限
flush privileges;