当前位置:   article > 正文

centos备份mysql数据库_centos 备份数据库

centos 备份数据库

1.编写备份脚本

1.1 修改my.cnf文件

1.1.1在my.cnf文件中增加如下配置,存储数据库的用户名和密码
[mysqldump]
user=root
password=12345678
  • 1
  • 2
  • 3

此举是为了避免使用/usr/bin/mysqldump -u root -p12345678报如下错误:
在这里插入图片描述

1.1.2 在my.cnf文件的[mysqld]后追加
skip-grant-tables
  • 1

是为了避免如下报错:
在这里插入图片描述
重启数据库

service mysql restart
  • 1

1.2 编写sh脚本备份数据库

#!/bin/bash
# Name:databasename_mysql_bak.sh
# This is a ShellScript For Auto DB Backup and Delete old Backup
#
# 参数说明:
# backupdir 保存路径的绝对地址
# 代码中 time=` date +%Y%m%d`也可以写为time=”$(date +”%Y%m%d”)” 找到当前日期时间格式
# 其中`符号是TAB键上面的符号,不是ENTER左边的’符号,还有date后要有一个空格。
#mysql_bin_dir:mysql的bin路径;
#dataname:数据库名;
#user:数据库用户名;
#password:用户密码;
#name:自定义备份文件前缀标识
# name:自定义备份文件前缀标识。
# -type f    表示查找普通类型的文件,f表示普通文件,d表示目录。
# -mtime +30   按照文件的更改时间来查找文件,+30表示文件更改时间距现在30天以前;如果是 -mmin +7 表示文件更改时间距现在7分钟以前。
# -exec rm -rf {} \;   表示执行一段shell命令,exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个\,最后是一个分号。
#数据库备份的位置
backupdir=/opt/mysqlbak
time=` date +%Y%m%d%H%M%S`
dirname=` date +%Y%m%d`'-mysql'
#需要备份的数据库的连接的用户名和密码和数据库(-uuser 和-ppassword 中间用空格隔开也是可以的 如:-u root )
#mysql_bin_dir/mysqldump -uuser -ppassword dataname | gzip > $backupdir/name$time.sql.gz
#mysql_bin_dir/mysqldump -u user -p password dataname | gzip > $backupdir/name$time.sql.gz
#每天创建一个新的文件夹
cd $backupdir
if [ ! -d $dirname  ];then
  mkdir $dirname
fi
/usr/local/mysql/bin/mysqldump work_plan | gzip > $backupdir/$dirname/mysql_$time.sql.gz
#传输至备份服务器,如果保留本机则不需要此步骤
#scp $backupdir/mysql_$time.sql.gz 22.122.51.158:/data/bakup/159/
#find $backupdir -name "name*.sql.gz" -type f -mtime +30 -exec rm -rf {} \;
#保留10日
find $backupdir -name "*-mysql" -type d -mtime +10 -exec rm -rf {} \;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

2.配置定时任务

进入/etc/cron.hourly目录(一小时执行一次),新建文件,将上述脚本内容拷入,赋予权限:

cd /etc/cron.hourly
touch mysqlback.cron
# 将脚本内容复制进去,赋予权限
chmod 777 mysqlback.cron
  • 1
  • 2
  • 3
  • 4

大功告成

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/882636
推荐阅读
相关标签
  

闽ICP备14008679号