MySQL数据定时备份
在工作中经常需要接触数据库。为了保证数据安全与突发事件故障恢复,定时备份数据库的数据是十分有必要的。我们以Linux
下的Mysql
为例聊一聊怎么简单的备份数据。
一、备份脚本准备
Mysql
中自带一个逻辑备份工具mysqldump
.我们可以直接在命令行中对mysql数据进行操作。
以下是常见的命令格式:
1 | mysqldump [选项] 数据库名 [表名] > 脚本名 |
同样的,将所有mysql
所有数据库中数据备份即为:
1 | mysqldump [选项] --all-databases [选项] > 脚本名 |
将以上命令写在shell脚本中,并赋予可执行权限。执行以上脚本的时候,由于没有设置登录密码所以还需要手动设置密码,当然在[选项]
中也可以增加密码属性,但是由于安全性考量不建议这样做。
我们采用将密码放在my.cnf
中并且设置该配置文件无读权限(chmod 600 my.cnf
)的方式来实现免密备份。
在my.cnf
中增加如下配置:
1 | [mysqldump] |
当然这里配置的用户要与脚本中的用户一致,并且在此处配置后,在脚本中不要添加-p
的选项。
二、启动定时任务
linux
中有一个定时命令crontab
,我们通常使用crontab -e
来操作当前用户的定时任务。
执行以上命令后,在弹出的工作表中编辑脚本的定时规则。
其格式为:
1 | * * * * * backup.sh |
所以,这样就可以很自由的设置定时任务,比如说我定时一个凌晨两点备份数据库信息的任务:
1 | 0 2 * * * /home/backup.sh |