MySQL使用触发器进行备份

news/2025/1/8 13:52:54/

触发器+脚本备份
实现方案:

mysqlmysqludf_2">1.配置mysql调用外部脚本的插件mysqludf

链接:https://pan.baidu.com/s/1MCrf1u_SRWwcZoxM9JDNiw
提取码:kgt0

解压
在这里插入图片描述
在这里插入图片描述

2.解压后放进:

mysql安装路径/lib/plugin/

在这里插入图片描述

mysql_17">3.在mysql执行命令创建自定义函数,下面创建两个函数的返回执行结果,另一个是返回命令行的字符串

1 DROP FUNCTION IF EXISTS sys_exec;
2 DROP FUNCTION IF EXISTS sys_eval;
3 CREATE FUNCTION sys_exec RETURNS integer SONAME 'lib_mysqludf_sys_x64.dll';
4 CREATE FUNCTION sys_eval RETURNS string SONAME 'lib_mysqludf_sys_x64.dll';
5 SELECT sys_eval("ipconfig/all");

执行结果显示为lib_mysqludf_sys_x64.dll要替换成mysql安装路径/lib/plugin/路径中的文件名

在这里插入图片描述

即为成功,且可在名为mysql数据库->func表中看到
在这里插入图片描述

4、使用sys_exec备份

创建备份bat文件

@echo off
set BACKUP_DIR=E:\database
set MYSQL_USER=roXXX   // 自己的mysql用户名
set MYSQL_PASS=1XXXX   // 自己的mysql密码
set MYSQL_HOST=localhost
set DATABASE_NAME=XXXXXX // 自己的数据库表名
set DATE=%date:~0,4%-%date:~5,2%-%date:~8,2%_%time:~0,2%-%time:~3,2%-%time:~6,2%
set DATE=%DATE: =0%// 跳转自己mysql安装位置
pushd C:\Program Files\MySQL\MySQL Server 8.0\bin  //存储
REM 创建备份文件mysqldump -u %MYSQL_USER% -p%MYSQL_PASS% -h %MYSQL_HOST% %DATABASE_NAME% > %BACKUP_DIR%\mysql_backup_%DATABASE_NAME%_%DATE%.sqlREM 压缩备份文件(可选)
REM 你也可以选择使用 zip 或其他压缩工具进行备份压缩
REM 例如使用 7zip
REM "C:\Program Files\7-Zip\7z.exe" a -tzip %BACKUP_DIR%\mysql_backup_%DATE%.zip %BACKUP_DIR%\mysql_backup_%DATE%.sqlREM 删除超过30天的备份文件(可选)
forfiles /p "%BACKUP_DIR%" /m *.sql /d -30 /c "cmd /c del @path"[mysqldump]user=user_namepassword=password

创建触发器命令

-- 每次触发器进行备份
新增
CREATE TRIGGER `insert-change` AFTER INSERT ON `表名`
FOR EACH ROW 
BEGINDECLARE redata INT;SELECT sys_exec('E:/database/XXXXX备份文件.bat') INTO redata;
END;修改
CREATE TRIGGER `update-change` AFTER UPDATE ON `表名`
FOR EACH ROW 
BEGINDECLARE redata INT;SELECT sys_exec('E:/database/XXXXX.bat') INTO redata;
END;删除
CREATE TRIGGER `delete-change` AFTER DELETE ON `表名`
FOR EACH ROW 
BEGINDECLARE redata INT;SELECT sys_exec('E:/database/XXXXX.bat') INTO redata;
END;

当表被修改时,会进行备份
在这里插入图片描述

5.可能的报错信息

在这里插入图片描述
解决办法:把my.ini 中的

secure-file-priv=“”

在这里插入图片描述

1.secure_file_priv = NULL ,限制文件的读取和写入。2.secure_file_priv = 文件路径 ,限制文件的读取和写入只能在设定的文件夹中。3.secure_file_priv= “”, 对文件和读取和写入没有任何限制。

http://www.ppmy.cn/news/1561564.html

相关文章

Win11+WLS Ubuntu 鸿蒙开发环境搭建(二)

参考文章 penHarmony南向开发笔记(一)开发环境搭建 OpenHarmony(鸿蒙南向开发)——标准系统移植指南(一) OpenHarmony(鸿蒙南向开发)——小型系统芯片移植指南(二&…

分享3个国内使用正版GPT的网站【亲测有效!2025最新】

1. molica 传送入口:https://ai-to.cn/url/?umolica 2. 多帮AI 传送入口:https://aigc.openaicloud.cn?inVitecodeMYAAGGKXVK 3. 厉害猫 传送入口:https://ai-to.cn/url/?ulihaimao

在Virtuoso中使用Clisoft SOS

在Virtuoso中使用Clisoft SOS 由于本人也是刚接触,后续用到其他的再进行更新,博客中可能有地方写的不好,欢迎大佬指点。 一、打开virtuoso 创建一个cds.lib(不受SOS版本控制) [bhlumaster /proj/trinity/work/cds/bh…

HNU人工智能期末复习知识点整理

考纲 选择题 ( 30 分 ) (30分) (30分): 15 15 15个单选 选择题范围为 PPT 内容+课本内容 计算、简答、推理题 ( 70 分 ) (70分) (70分): 4 4 4个大题,每个大题 2 ∼ 3 2 \sim 3 2∼3小问 4 4 4个大题分别为:机器学习、…

Java:缓存:LinkedHashMap实现Lru

文章目录 Lru源码分析 ​​​​​​​​​​​​​​LinkedHashMap维护一个LinkedHashMapEntry<K,V>的双向链表对LinkedHashMap的增删查操作,也会对链表进行相同的操作并改变链表的链接顺序小结使用方法​​​​​​​​​​​​​​应用总结Lru Least Recently Used,…

2025年直播电商系统源码开发趋势:如何进行跨境电商APP搭建?

企业在搭建跨境电商APP时&#xff0c;如何抓住技术趋势与市场需求&#xff0c;打造差异化竞争力&#xff1f;本文将从直播电商系统源码开发的趋势、核心功能需求以及开发策略三个方面进行详细探讨。 趋势一&#xff1a;系统开发趋向模块化与低代码化 模块化和低代码开发是当前…

【51单片机】02LED流水灯实验

点亮你的LED 一、点亮第一个LED1.GPIO介绍2.P1、P2、P3端口 二、LED实验2.尝试点亮LED3.LED流水灯 一、点亮第一个LED 1.GPIO介绍 这块内容这里可以做简单的了解&#xff0c;与数电知识强相关。后续可以再回过头来学习 GPIO (general purpose input output) 通用输入输出端口…

IDEA使用Git同步教程

目录 &#x1f552; 1. IDEA配置&#x1f552; 2. 项目上传到本地仓库&#x1f558; 2.1 创建本地git仓库&#x1f558; 2.2 Add&#x1f558; 2.3 Commit &#x1f552; 3. 项目上传到Github&#x1f552; 4. 报错解决 &#x1f552; 1. IDEA配置 首先下载安装好Git&#xff…