一 手动备份
先创建测试库 work10
如图
也可以在 本机的 navicat 直接操作 创建几张表
准备完成 退出 MySQL 重新打开 控制台也可以
创建 一个 文件夹 用来 储存 备份 文件 和 备份语句
进入文件夹 创建一个 备份 语句文件 .sh 作为后缀
创建并打开 文件 后 按下 i 进入 写入 模式,否则无法写入
输入如下内容
rq=$(date +%Y_%m_%d_%H_%M)
mysqldump -uroop -p -d work10 > "/mysqlbak_test/sqlbak/sqlbak_$rq.sql"
按下 esc 退出 编辑模式 输入 :wq 保存并返回
此时 再 创建一个 文件夹 存 SQL的备份文件
现在有一个 存 备份文件的 文件夹 和 一个 备份语句文件
输入 如下语句 手动执行 备份操作 输入 数据库密码
为了便于观察 可以 在虚拟机上 打开 文件夹 查看
如下图 双击打开 计算机
右键打开 文件夹
此时 备份文件 已经生成
测试 是否 备份成功 回到 主机 在 navicat里删除 表结构
回到 Ubuntu
先 显示一下 备份文件名 输入 如下代码 导入 数据库内容
sudo mysql -uroot -p work10 < "备份文件的完整路径"
回到 navicat 此时 表结构 已经恢复 手动 备份 / 恢复 结束
二 定时任务备份
接着上文
备份文件储存位置
sudo mkdir /mysqlbak_test/sqlbak
新建一个 sql_time.sh
sudo vim /mysqlbak_test/sql_time.sh
进入后 输入 如下代码
注意: 此时 mysqldump 直接跟着 数据库名 即可 待会修改一下 配置文件 会添加 地址,用户,密码
rq=$(date +%Y_%m_%d_%H_%M)
mysqldump work10 > "/mysqlbak_test/sqlbak/sqlbak_$rq.sql"
按下 esc 退出 编辑模式 输入 :wq 保存并返回
修改 配置文件 添加 如下几行 每行直接回车 尽量不要 在后面出现空格
[client]
host=localhost
usrt=root
password='密码'
保存返回 此时 可以手动 测试一下 备份脚本 是否 能正常执行
可以之后
配置定时任务
先 编辑 crontab 文件
sudo vim /etc/crontab
在最下方 # 号内 添加 如下语句 每天 13点 15分 执行
15 13 * * * root /mysqlbak_test/sqlbak.sh
注意 前五个 位置的 意义 :分 时 天 月 周
接着 esc :wq 保存 返回
给 备份语句脚本 文件 给与权限
sudo chmod +x 文件
之后 重启 crontab
/etc/init.d/cron restart
等待定时 生成 备份文件 前面可以 把时间设置近一点 方便测试
定时的 13 点 15 的 备份生成 成功