搜尋
首頁資料庫mysql教程MysSQLMariaDB用trigger调用shell

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
使用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应用的网

如何在 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 pm 02:19 PM

DockerCompose、Nginx和MariaDB的最佳实践:部署PHP应用程序的监控与优化引言:在现代应用程序开发中,容器化已经成为一种流行的方式,能够帮助我们更好地管理和部署应用程序。而DockerCompose则是一种用于定义和运行多个容器的工具,它能够简化应用程序的部署和管理过程。本文将介绍如何使用DockerCompose结合Nginx和

使用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容器的工具。它可以帮助我们轻松地创建和运行多个容器

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

熱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.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器