在操作数据的过程中,可能会导致数据错误甚至数据库崩溃,有效的定时备份可以很好的保护数据库。本文主要介绍了几种定期备份MySQL数据库的方法。
目录
一、mysqldump命令备份数据。
二。mysqldump III常见操作示例。恢复MySQL备份内容1。编写BASH来维护固定数量的备份文件2。使用crontab定期执行备份脚本2.1 cron服务2.2crontab语法2.3创建cron脚本IV。附上crontab使用示例:
1.mysqldump命令备份数据
MySQL提供了一个方便的工具mysqldump,用于通过命令行导出dumpbase数据和文件。我们可以通过命令行直接导出数据库内容。首先我们简单
解一下mysqldump命令用法
:#MySQLdump是常用的
Mysqldump -u root -p - databases数据库2xxx.sql
二. mysqldump常用操作示例
备份全部数据库的数据和结构
MySQL dump-u root-p 123456-A/data/MySQL dump/mydb . SQL
备份全部数据库的结构(加 -d 参数)
MySQL dump-u root-p 123456-A-d/data/MySQL dump/mydb . SQL
备份全部数据库的数据(加 -t 参数)
MySQL dump-u root-p 123456-A-t/data/MySQL dump/mydb . SQL
备份单个数据库的数据和结构(,数据库名mydb)
MySQL dump-u root-p 123456 mydb/data/MySQL dump/mydb . SQL
备份单个数据库的结构
MySQL dump-u root-p 123456 myd b-d/data/MySQL dump/mydb . SQL
备份单个数据库的数据
MySQL dump-u root-p 123456 myd b-t/data/MySQL dump/mydb . SQL
备份多个表的数据和结构
(数据和结构如上分别备份)MySQL dump-u root-p 123456 mydb t1 T2/data/MySQL dump/mydb . SQL
一次备份多个数据库
mysqldump -uroot -p123456 -数据库db1 db2 /data/mysqlDump/mydb.sql
三. 还原 MySQL 备份内容
恢复有两种方式,第一种是在MySQL命令行,第二种是使用SHELL行完成恢复。
在系统命令行中,输入
如下实现还原
:MySQL-uroot-p 123456/data/MySQL dump/mydb . SQL
登录mysql系统,
通过source指令找到对应系统中的文件进行还原
:MySQL source/data/MySQL dump/mydb . SQL
在Linux中,通常使用BASH脚本来编写要执行的内容,定期执行crontab命令来实现日志自动生成。
下面的代码功能是备份mysql,用crontab,备份内容是近一个月(31天)的日常mysql数据库记录。
1、编写BASH维护固定数量备份文件在Linux中,使用vi或vim编写脚本内容并命名为:mysql _ dump _ script.sh。
#!/bin/bash
#保存备份次数并备份31天的数据。
数量=31
#备份保存路径
备份目录=/root/mysqlbackup
#日期
dd=`日期%Y-%m-%d-%H-%M-%S
#备份工具
工具=mysqldump
#用户名
用户名=root
#密码
密码=TankB214
#要备份的数据库
database_name=edoctor
#如果文件夹不存在,则创建它
如果[!-d $ backup _ dir];
然后
mkdir-p $ backup _ dir;
船方不负担装货费用
#只需编写MySQL dump-u root-p 123456 users/root/MySQL backup/users-$ filename . SQL。
$ tool-u $ username-p $ password $ database _ name $ backup _ dir/$ database _ name-$ DD . SQL
#写入以创建备份日志
echo create $ backup _ dir/$ database _ name-$ DD . dupm $ backup _ dir/log . txt
#找出需要删除的备份
delfile=`ls -l -crt $backup_dir/*。SQL | awk“{ print $ 9 }”| head-1 ` 1
#确定当前备份数量是否大于$number
count=`ls -l -crt $backup_dir/*。SQL | awk“{ print $ 9 }”| WC-l ` 1
if [ $count -gt $number ]
然后
#删除最旧的备份,只留下$ number个备份
rm $delfile
#写入删除文件日志
echo delete $ delfile $ backup _ dir/log . txt
船方不负担装货费用
如上代码主要含义如下:
1.首先,设置各种参数,如最大备份号码数、备份路径、用户名、密码等。
2.执行mysqldump命令保存备份文件,将操作打印到同一个目录下的log.txt,标记操作日志。
3.
定义需要删除的文件
:通过ls命令获取第九列,即文件名列表,然后通过实现用最晚的操作时间定义需要删除的文件。.定义备份数量:
用ls命令加上wc -l L统计以sql结尾的文件行数。5.如果文件超过了限制大小,则删除最早创建的sql文件。
2、使用crontab定期执行备份脚本在Linux中,周期性执行的任务一般由cron [ps -ef|grep cron]处理。Cron读取一个或多个配置文件,其中包含命令行及其调用时间。cron的配置文件叫做“crontab”,是“cron table”的简称。
2.1 cron服务
Cron是Liunx下的一个定时执行工具,可以在没有人为干预的情况下运行作业。
服务crond start //启动服务
服务crond stop //关闭服务。
服务crond restart //重新启动服务
服务crond重新加载//重新加载配置
服务crond状态//检查服务状态
2.2crontab语法
crontab命令用于安装、删除或列出用于驱动cron后台进程的表。用户将需要执行的命令序列放入crontab文件中执行。每个用户都可以拥有自己的crontab文件。不能直接创建或修改/var/spool/cron下的Crontab文件。crontab文件由crontab命令创建。
如何在crontab文件中输入要执行的命令和时间?文件中的每一行包括六个字段,其中前五个字段是执行指定命令的时间,最后一个字段是要执行的命令。每个字段由空格或制表符分隔。
格式如下:
分钟小时月日年月日星期命令
合法值是00-59 00-23 01-31 01-12 0-6 (0是星期日)
除了数字之外,还有几个特殊符号,分别是 * 、/和-、、、表示范围内的所有数字,/表示每五个单位,-表示某个数字到某个数字,、分隔几个离散的数字。
-l在标准输出上显示当前crontab。
-r删除当前的crontab文件。
-e使用VISUAL或EDITOR环境变量指向的编辑器编辑当前crontab文件。当您完成编辑并离开时,编辑过的文件将自动安装。
2.3创建cron脚本
第一步:
写一个cron脚本文件,命名为mysqlRollBack.cron 15,30,45,59 * * * * echo xgmtest . xgmtest.txt表示打印命令每15分钟执行一次。第二步:
添加计划任务。执行命令“crontab crontest.cron”。锻炼第三步:
crontab -l l 检查计划任务是否成功,或者检查/var/spool/cron下是否生成了相应的cron脚本。注意:
该操作直接替换该用户下的crontab,而不是添加。执行定期编写的调度任务脚本(记得先给shell脚本执行权限)
0 2 * * */root/MySQL _ backup _ script . sh
然后使用crontab命令定期指示计时脚本。
crontab mysqlRollback.cron
然后检查该计划任务是否是由以下命令创建的:
四、附 crontab 的使用示例:
(1).每天早上6点。
0 * * *回应“早上好”/tmp/test . txt//注意,简单地echo,你看不到任何来自屏幕的输出,因为cron会将任何输出通过电子邮件发送到root的邮箱。
(2).每两个小时
0 */2 * * * echo“现在休息一下。”/tmp/test.txt
(3).从晚上11点到早上8点,每两个小时一次。
0 23-7/2,8 * * * echo 做个好梦/tmp/test.txt
(4).每月4日,每周一至周三上午11点。
0 11 4 * 1-3命令行
(5).1月1日凌晨4点。
0 1 1 *命令行shell=/bin/bash path=/sbin:/bin:/usr/sbin:/usr/bin mailto=root//如果有错误或数据输出,数据将被发送到此帐户HOME=/
(6).每小时执行/etc/cron.hourly中的脚本
01 * * * *根运行-零件/etc/cron.hourly
(7).每天执行/etc/cron.daily中的脚本。
02 4 * * * root run-parts/etc/cron . daily
(8).每周执行/etc/cron.weekly中的脚本
22 4 * * 0根运行零件/etc/cron .每周
(9).每月执行/etc/cron.monthly中的脚本。
42 4 1 * *根运行-零件/etc/cron .每月
00-
注意:
“运行零件”参数。如果删除此参数,可以编写要运行的脚本的名称,而不是文件夹名称。(10).每天4: 00、5: 00和6: 00分别在5分钟、15分钟、25分钟、35分钟、45分钟和55分钟执行命令。
5,15,25,35,45,55 16,17,18 * * *命令
(11).每周一、三、五下午三点,系统进入维护状态,重启系统。
00 15 * * 1,3,5关机-r 5
(12).在每小时的10: 00和40: 00,在用户目录中执行命令innd/bbslin:
10,40 * * * * innd/bbslink
(13).每小时在用户目录中执行命令bin/account 1分钟:
1个* * * *箱/账户
以下是我测试每分钟的截图效果,其对应代码如下:
* * * * */root/MySQL _ backup _ script . sh
效果截图:
以上就是本文关于MySQL数据库定时备份的几种方式(全面)。有关MySQL数据库定时备份的几种方式的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!