linux下如何自动备份mysql数据库

linux下如何自动备份mysql数据库,第1张

1 写个自动备份脚本autobackupsh,内容如下

#!/bin/bash

mysqldump -p databasename > mydatasql

2 更改其为可执行文件 chmod +x autobackupsh

3 通过crontab让系统自动运行这个脚本就好了,如crontab -e

0 0 /路径到/autobackupsh

第一个0表示分钟,第二个0表示0小时也就是零辰第三个表示每天,第四个表示每月,第五个表示每周

mysql备份:

mysqldump -u username -p dbname > BackupNamesql

mysql恢复:

mysql -u root -p dbname < BackupNamesql

所以你可以写个shell脚本,脚本中执行mysql备份命令,然后把shell脚本加入crontab定时任务中就可以完成每天自动备份数据库了。

方法/步骤

1 在根目录下新建定时备份存储文件夹mkdir /mysql_backup

2新建备份的脚本vim /root/mysql_backupsh

3在mysql_backupsh中输入内容:

backupdir=/mysqlbackup time=` date +%Y%m%d%H`mysqldump -uroot -proot abc | gzip > $backupdir/abc$timesqlgzfind $backupdir -name “abcsqlgz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1

——————————————————————————————

说明:

backupdir = 备份文件存储文件夹time = 获取当前时间 年月日时(2014111417)2014年11月14日17点mysqldump 备份数据库指令 abc要备份的数据库find $backupdir -name “abcsqlgz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1 删除5天前的备份文件

3 :wq 文件保存成功后

先按一下键盘上的 " esc " 然后输入 ” :wq “

执行一下脚本,看根目录下的mysql_backup文件夹是否有sqlgz后缀名的文件

/mysql_backupsh

写入每天的定时任务 修改 /etc/crontabvi /etc/crontab

按键盘上的"i",开始输入

02 4 root /root/mysql_backupsh

表示每天4点2分执行备份任务

先按一下键盘上的 " esc " 然后输入 ” :wq “ 表示保存

重新启动crond

service crond restart 或 /etc/rcd/initd/crond restart

1、查看磁盘空间情况:

既然是定时备份,就要选择一个空间充足的磁盘空间,避免出现因空间不足导致备份失败,数据丢失的恶果!

存储到当前磁盘这是最简单,却是最不推荐的;服务器有多块硬盘,最好是把备份存放到另一块硬盘上;有条件就选择更好更安全的存储介质;

# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root 50G 46G 16G 97% /

tmpfs 19G 92K 19G 1% /dev/shm

/dev/sda1 485M 39M 421M 9% /boot

/dev/mapper/VolGroup-lv_home 534G 36G 503G 1% /home123456123456

2、创建备份目录:

上面我们使用命令看出/home下空间比较充足,所以可以考虑在/home保存备份文件;

cd /home

mkdir backup

cd backup123123

3、创建备份Shell脚本:

注意把以下命令中的DatabaseName换为实际的数据库名称;

当然,你也可以使用其实的命名规则!

vi bkDatabaseNamesh11

输入/粘贴以下内容:

#!/bin/bash

mysqldump -uusername -ppassword DatabaseName > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S)sql1212

对备份进行压缩:

#!/bin/bash

mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S)sqlgz1212

注意:

把 username 替换为实际的用户名;

把 password 替换为实际的密码;

把 DatabaseName 替换为实际的数据库名;

4、添加可执行权限:

chmod u+x bkDatabaseNamesh11

添加可执行权限之后先执行一下,看看脚本有没有错误,能不能正常使用;

/bkDatabaseNamesh11

5、添加计划任务

检测或安装 crontab

确认crontab是否安装:

执行 crontab 命令如果报 command not found,就表明没有安装

# crontab

-bash: crontab: command not found

以上就是关于linux下如何自动备份mysql数据库全部的内容,包括:linux下如何自动备份mysql数据库、如何使用crontab每天自动备份Mysql数据库、如何在linux下实现mysql数据库每天自动备份等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10201655.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存