MySQL - Navicat自动备份MySQL数据

对于从事IT开发的工程师,数据备份我想大家并不陌生,这件工程太重要了!对于比较重要的数据,我们希望能定期备份,每天备份1次或多次,或者是每周备份1次或多次。

如果大家在平时使用Navicat操作数据库,Navicat是自带备份功能的,操作如下

首先,来设置一下Navicat保存备份以及SQL语句的路径

博主使用Navicat16

新建或者编辑连接实例时,点击"高级 ",选择"设置位置",替换为需要保存的地址即可。

一、定时任务自动备份

(一)新建批处理作业

1、打开Navicat,点击" 自动运行**"---->"** 新建批处理作业**"(如果是老版本的Navicat,则是点击"计划")**

博主当前使用的Navicat16

老版本

2、点击" 备份**",然后选择要备份的数据库,然后双击可用的工作中的 "Backup test-backup",test-backup表示需要备份的数据库名**

点击上方的"保存"按钮,即可保存当前的自动运行计划中的批处理作业内容。

设置"配置文件名",点击保存

老版本

在左侧选择要备份的数据库,右侧双击可用任务,在下方会看到任务已选择

(二)设置任务计划

设置任务计划,可以批处理作业自动在某个时刻或者每隔多长时间执行一次备份

1、点击工具栏的设置任务计划按钮,选择触发器选项卡,点击新建

2、设置触发器的备份时间间隔以及执行频率

(1)设置每天的凌晨1点执行一次备份

(2)设置每隔多长时间执行一次,如每隔1分钟执行一次

3、点击工具栏的设置任务计划按钮,选择触发器选项卡,点击编辑``即可

如果需要手动备份,选择新建的任务计划,点击开始即可

就会看到如下日志

(三)SQL脚本实现定时自动备份

bash 复制代码
-- 检查事件调度器是否开启
SHOW VARIABLES LIKE 'event_scheduler';


-- 如果事件调度器返回的值不是 ON,则可以通过以下命令临时或永久开启;或者在 MySQL 配置文件中添加 event_scheduler=ON 并重启 MySQL 服务
SET GLOBAL event_scheduler = ON;


-- 在这个脚本中,你需要替换 your_username, your_password, your_database_name,/path/to/your/backup/directory/ 为你的 MySQL 用户名、密码、数据库名和备份路径
CREATE EVENT backup_database
ON SCHEDULE EVERY 1 DAY
DO
  BEGIN
    SET @backup_dir = '/path/to/your/backup/directory/';
    SET @dbname = (SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'your_database_name');
    SET @filename = CONCAT(@backup_dir, @dbname, '_', DATE_FORMAT(NOW(), '\%Y-\%m-\%d-\%H\%i\%s'), '.sql');
 
    SET @command = CONCAT('mysqldump -u your_username --password=your_password ', @dbname, ' --result-file=', @filename);
 
    PREPARE stmt FROM @command;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
  END;

二、手动备份

1、选择需要备份的数据库,点击" 备份**",点击"** 新建备份**"或者右键点击"新建备份"**

2、点击" 备份**"**

也可以在设置保存文件路径的位置看到备份

三、还原备份

1、选择需要备份的数据库,点击" 备份**",点击"** 还原备份**"或者右键点击"还原备份"**

2、选择相应的备份文件,点击" 常规**"---->"** 还原**"即可**

参考链接

使用Navicat实现MySQL自动定时备份_navicat自动备份-CSDN博客

Navicat自动备份数据库(1)_navicat备份数据库路径-CSDN博客

相关推荐
AAA修煤气灶刘哥5 小时前
后端人速藏!数据库PD建模避坑指南
数据库·后端·mysql
程序新视界6 小时前
学习MySQL绕不开的两个基础概念:聚集索引与非聚集索引
mysql
RestCloud9 小时前
跨境数据传输:ETL如何处理时区与日期格式差异
mysql·api
得物技术13 小时前
MySQL单表为何别超2000万行?揭秘B+树与16KB页的生死博弈|得物技术
数据库·后端·mysql
xiaok13 小时前
mysql中怎么创建一个可控权限数据库账号密码给到开发者
mysql
ByteBlossom17 小时前
MySQL 面试场景题之如何处理 BLOB 和CLOB 数据类型?
数据库·mysql·面试
玉衡子17 小时前
九、MySQL配置参数优化总结
java·mysql
-Xie-17 小时前
Mysql杂志(十六)——缓存池
数据库·mysql·缓存
玉衡子17 小时前
八、MySQL全局优化总结&MySQL8新特性
java·mysql
计算机毕业设计木哥18 小时前
计算机毕设选题推荐:基于Java+SpringBoot物品租赁管理系统【源码+文档+调试】
java·vue.js·spring boot·mysql·spark·毕业设计·课程设计