首页 数据库 mysql教程 MysSQLMariaDB用trigger调用shell

MysSQLMariaDB用trigger调用shell

Jun 07, 2016 pm 04:45 PM
mariadb

MysSQLMariaDB用trigger调用shell

Windows环境下:

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.dll';
CREATE FUNCTION sys_get RETURNS string SONAME 'lib_mysqludf_sys.dll';
CREATE FUNCTION sys_set RETURNS int SONAME 'lib_mysqludf_sys.dll';
CREATE FUNCTION sys_exec RETURNS int SONAME 'lib_mysqludf_sys.dll';
CREATE FUNCTION sys_eval RETURNS string SONAME 'lib_mysqludf_sys.dll';

select sys_eval('ipconfig');

Linux环境下:

在mysql的触发器中执行一个外部程序。

步骤如下:

一、解压附件的压缩包之后

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

目录下。

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

三、创建函数

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

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 `test`.`testref` BEFORE INSERT on `test`.`test1`
for each row BEGIN
DECLARE done INT DEFAULT 999;
set done = sys_exec("/mysqlUDFtest/test.sh");
INSERT INTO test2(a2)values(2);
END;
|

DELIMITER ;

3、向test1表中插入一条数据后,请在Linux命令行:用root用户,执行以下命令:find / -name testlog.txt

查找testlog.txt文件。

在 CentOS/RHEL/Scientific Linux 6 下安装 LAMP (Apache with MariaDB and PHP)

MariaDB Proxy读写分离的实现

Linux下编译安装配置MariaDB数据库的方法

CentOS系统使用yum安装MariaDB数据库

安装MariaDB与MySQL并存

MariaDB 的详细介绍:请点这里
MariaDB 的下载地址:请点这里

本文永久更新链接地址:

linux

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

使用PHP连接MariaDB数据库 使用PHP连接MariaDB数据库 May 17, 2023 am 08:24 AM

MariaDB是一种开源的关系型数据库管理系统,它是MySQL的一个分支。PHP作为一种开源的服务器端脚本语言,被广泛应用于Web开发中。在很多Web开发项目中,需要使用PHP连接到MariaDB数据库,以便在Web应用程序中存储和检索数据。这篇文章将介绍如何使用PHP编写代码来连接MariaDB数据库。一、安装MariaDB服务器在使用PHP连接Maria

如何使用PDO连接到MariaDB数据库 如何使用PDO连接到MariaDB数据库 Jul 28, 2023 pm 02:49 PM

如何使用PDO连接到MariaDB数据库一、简介PDO(PHPDataObjects)是PHP中用来访问数据库的一个轻量级的抽象层。它为开发者提供了一组统一的接口来连接和操作不同类型的数据库,包括MariaDB、MySQL、SQLite等。本文将介绍如何使用PDO来连接到MariaDB数据库,并给出示例代码。二、安装和配置在使用PDO连接到MariaDB

一文详解MariaDB与MySQL的区别 一文详解MariaDB与MySQL的区别 Mar 09, 2023 am 11:39 AM

本篇文章给大家带来了关于MariaDB和MySQL的相关知识,其中主要跟大家聊一聊MariaDB与MySQL的区别都有哪些,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。

使用Docker Compose、Nginx和MariaDB优化PHP应用程序的网络性能 使用Docker Compose、Nginx和MariaDB优化PHP应用程序的网络性能 Oct 12, 2023 pm 12:49 PM

使用DockerCompose、Nginx和MariaDB优化PHP应用程序的网络性能简介:在当今互联网时代,网络性能对于Web应用程序的稳定性和响应速度至关重要。为了提高PHP应用程序的网络性能,我们可以使用容器化技术DockerCompose、高效的Web服务器Nginx和稳定的数据库MariaDB。本文将详细介绍如何使用这些工具来优化PHP应用的网

使用Docker Compose、Nginx和MariaDB优化PHP应用程序的性能问题 使用Docker Compose、Nginx和MariaDB优化PHP应用程序的性能问题 Oct 12, 2023 pm 12:55 PM

使用DockerCompose、Nginx和MariaDB优化PHP应用程序的性能问题在开发和部署PHP应用程序时,经常会遇到性能问题。为了解决这些问题,我们可以利用DockerCompose、Nginx和MariaDB来优化应用程序的性能。DockerCompose是一个用于定义和管理多个Docker容器的工具。它可以帮助我们轻松地创建和运行多个容器

如何在 Debian 12 上安装 MariaDB数据库 如何在 Debian 12 上安装 MariaDB数据库 Feb 20, 2024 pm 02:24 PM

MariaDB是一个开源多线程的关系数据库管理系统,是MySQL的替代品。MariaDB是Debian中MySQL的默认替换方案。本教程介绍如何在Debian12上安装MariaDB。准备条件1、一台安装了Debian12的VPS虚拟机(推荐您购买一台阿里云VPS或者腾讯云VPS虚拟主机,如果你更喜欢国外服务器,推荐你尝试Vultr上的VPS,注册即送$50美元体验,性价比非常高),当然你自己电脑或者虚拟机中也可以。2、如果使用VPS,基于安全考虑,建议使用非root账号,可以在Debian12

使用Docker Compose、Nginx和MariaDB实现PHP应用程序的安全加固 使用Docker Compose、Nginx和MariaDB实现PHP应用程序的安全加固 Oct 12, 2023 am 09:02 AM

使用DockerCompose、Nginx和MariaDB实现PHP应用程序的安全加固随着网络攻击和数据泄漏的频繁发生,保护应用程序和数据库的安全变得愈发重要。在PHP应用程序中,使用DockerCompose、Nginx和MariaDB可以实现安全加固,并提供一定的安全保护措施。本文将介绍如何使用这些工具进行安全加固,并提供一些代码示例。使用Docke

Docker Compose、Nginx和MariaDB的完美组合:部署PHP应用程序的最佳实践 Docker Compose、Nginx和MariaDB的完美组合:部署PHP应用程序的最佳实践 Oct 12, 2023 am 11:24 AM

DockerCompose、Nginx和MariaDB的完美组合:部署PHP应用程序的最佳实践引言:在现代Web应用程序开发中,使用容器化技术已经成为了一种趋势。容器化技术可以将应用程序及其依赖项打包成一个单独的容器,使得应用程序可以在任何支持容器化技术的环境中运行。而Docker是当下最流行的一种容器化技术,它可以简化应用程序的部署、管理和扩展。对于使用

See all articles