首頁 資料庫 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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 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)

熱門話題

Java教學
1670
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1276
29
C# 教程
1256
24
使用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 02:19 PM

DockerCompose、Nginx和MariaDB的最佳實踐:部署PHP應用程式的監控與最佳化引言:在現代應用程式開發中,容器化已經成為一種流行的方式,能夠幫助我們更好地管理和部署應用程式。而DockerCompose則是用來定義和運行多個容器的工具,它能夠簡化應用程式的部署和管理流程。本文將介紹如何使用DockerCompose結合Nginx和

如何在 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 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 am 11:24 AM

DockerCompose、Nginx和MariaDB的完美組合:部署PHP應用程式的最佳實踐引言:在現代Web應用程式開發中,使用容器化技術已經成為了一種趨勢。容器化技術可以將應用程式及其相依性打包成一個單獨的容器,使得應用程式可以在任何支援容器化技術的環境中運作。而Docker是當下最受歡迎的一種容器化技術,它可以簡化應用程式的部署、管理和擴展。對於使用

使用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容器的工具。它可以幫助我們輕鬆地創建和運行多個容器

See all articles