mysql触发器内执行shell脚本,shell脚本用curl访问php网页

mysql触发器内执行shell脚本,shell脚本用curl访问php网页在mysql的触发器中执行一个外部程序。 步骤如下: 1.下载lib_mysqludf_sys程序:https://github.com/mysqludf/lib_mysqludf_sys 2.解压…

mysql触发器内执行shell脚本,shell脚本用curl访问php网页

1.下载lib_mysqludf_sys程序:https://github.com/mysqludf/lib_mysqludf_sys

2.解压文件,在源码目录里编译源代码:

gcc -DMYSQL_DYNAMIC_PLUGIN -fPIC -Wall -I/usr/include/mysql -I. -shared lib_mysqludf_sys.c -o lib_mysqludf_sys.so

如果不想自己编译的话,把lib_mysqludf_sys.so文件放到 mysql的lib/mysql/plugin/

目录下。

 执行chcon -t texrel_shlib_t usr/lib/mysql/plugin/lib_mysqludf_sys.so

在mysql中执行如下sql创建函数

DROP FUNCTION IF EXISTS lib_mysqludf_sys_info;
DROP FUNCTION IF EXISTS sys_get;
DROP FUNCTION IF EXISTS sys_set;
DROP FUNCTION IF EXISTS sys_exec;
DROP FUNCTION IF EXISTS sys_eval;

CREATE FUNCTION lib_mysqludf_sys_info RETURNS string SONAME “lib_mysqludf_sys.so”;
CREATE FUNCTION sys_get RETURNS string SONAME “lib_mysqludf_sys.so”;
CREATE FUNCTION sys_set RETURNS int SONAME “lib_mysqludf_sys.so”;
CREATE FUNCTION sys_exec RETURNS int SONAME “lib_mysqludf_sys.so”;
CREATE FUNCTION sys_eval RETURNS string SONAME “lib_mysqludf_sys.so”;
四、测试

1、准备sh文件
在linux系统中执行下面的命令
su mysql
mkdir /mysqlUDFtest

cd mysqlUDFtest
vi test.sh

#/bin/sh
date > testlog.txt
curl http://192.168.1.158/api/goods.php

chmod +x ./test.sh
2、准备数据库表和触发器
选择一个数据库执行如下命令:
CREATE TABLE test1(a1 INT) engine=InnoDB;
CREATE TABLE test2(a2 INT) engine=InnoDB;

DELIMITER |

DROP TRIGGER /*!50032 IF EXISTS */ `test`.`testref`|

create trigger curlgoods BEFORE INSERT on goods 
for each row BEGIN
DECLARE done INT DEFAULT 999; 
set done = sys_exec(“/usr/lib64/mysql/curlphp/curlgoods.sh”);
END;
|
DELIMITER ;

3、向test1表中插入一条数据后,请在Linux命令行:用root用户,执行以下命令:find / -name testlog.txt
查找testlog.txt文件。
执行/data/mysql/要执行的shell文件!————重点(gentos6.6只能在这个路径里面执行)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/9210.html

(0)
上一篇 2023-02-13
下一篇 2023-02-13

相关推荐

  • Python条件语句:根据条件执行不同的代码块

    Python条件语句:根据条件执行不同的代码块在开发过程中,我们经常需要根据不同的条件执行不同的代码块。这时,我们就可以使用Python中提供的条件语句。

    2024-01-06
    111
  • 用Python的Time模块轻松处理时间数据

    用Python的Time模块轻松处理时间数据Time(时间)是计算机系统中的重要概念,程序中经常需要进行时间相关的操作。Python中的Time模块提供了很多处理时间的工具,包括获取当前时间、格式化时间、休眠等功能。Time模块的使用对于开发者来说非常重要,可以提高开发效率。

    2024-01-17
    117
  • Python 分布图

    Python 分布图在现代大数据分析环境下,数据可视化已经成为了一种强大的工具,其中最常用的可视化之一就是分布图。Python 作为一种强大的编程语言,在数据分析和可视化方面拥有强大的功能。Python 的分布图能够呈现数据的分布情况,同时让人们在数据分析过程中更直观地获得洞察力,并支持更准确的决策。本文将详细介绍 Python 分布图的相关知识和用法。

    2024-06-28
    46
  • 云原生大数据平台_数据库和程序如何连接C

    云原生大数据平台_数据库和程序如何连接C以**“数实融合,绽放新机”**为主题,聚焦产业趋势与技术前沿,打造产业互联网顶级盛会的2021腾讯数字生态大会日前在武汉举办,腾讯云数据库技术负责人程彬进行了《云原生时代的数据库技术实践》的主题演讲

    2023-04-30
    144
  • 在sqlbolt上学习SQL「终于解决」

    在sqlbolt上学习SQL「终于解决」在sqlbolt上学习SQL 该网站能够学习sql基础,并且能在网页中直接输入sql语句进行查询。 学习网站原网址https://sqlbolt.com/ (!部分指令该网站不支持,且存在一些bug!

    2023-04-25
    143
  • 掌握Python Super用法

    掌握Python Super用法Python中的super函数是一个用于调用父类方法的关键字。它不仅可以看作是superhero(超级英雄)的缩写,更重要的是在面向对象(OOP)编程中起到了至关重要的作用。本文将从多个方面详细介绍Python Super的用法,帮助读者更好的掌握这个关键字。

    2024-06-30
    45
  • 使用Python CGI构建Web应用程序

    使用Python CGI构建Web应用程序Web应用程序是目前互联网上最受欢迎的应用程序之一。随着计算机网络技术迅速发展,越来越多的传统应用程序被转换成面向Web的应用程序。Web应用程序给予用户更加方便、快捷的体验,并且与互联网相连接,可以随时用任何设备访问,具有更好的用户体验和社交共享功能。

    2024-04-25
    67
  • Oracle、OracleClient、PLSQL下载&安装&配置(64位)[通俗易懂]

    Oracle、OracleClient、PLSQL下载&安装&配置(64位)[通俗易懂]下载 链接:https://pan.baidu.com/s/1DpBiI3ZBXVDnFxRxPxnpKg 提取码:9mcv 一、Oracle11gR2(64位)安装配置 1、下载后,同时选择两个压缩

    2023-02-08
    150

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注