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 的下载地址:请点这里
本文永久更新链接地址:

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

MariaDB是一種開源的關聯式資料庫管理系統,它是MySQL的一個分支。 PHP作為一種開源的伺服器端腳本語言,被廣泛應用於Web開發。在許多Web開發專案中,需要使用PHP連接到MariaDB資料庫,以便在Web應用程式中儲存和檢索資料。這篇文章將介紹如何使用PHP編寫程式碼來連接MariaDB資料庫。一、安裝MariaDB伺服器在使用PHP連接Maria

如何使用PDO連接到MariaDB資料庫一、簡介PDO(PHPDataObjects)是PHP中用來存取資料庫的一個輕量級的抽象層。它為開發者提供了一組統一的介面來連接和操作不同類型的資料庫,包括MariaDB、MySQL、SQLite等。本文將介紹如何使用PDO來連接到MariaDB資料庫,並給出範例程式碼。二、安裝和設定在使用PDO連接到MariaDB

這篇文章為大家帶來了關於MariaDB和MySQL的相關知識,其中主要跟大家聊一聊MariaDB與MySQL的差別都有哪些,有興趣的朋友下面一起來看一下吧,希望對大家有幫助。

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

MariaDB是一個開源多執行緒的關聯式資料庫管理系統,是MySQL的替代品。 MariaDB是Debian中MySQL的預設替換方案。本教學介紹如何在Debian12上安裝MariaDB。準備條件1、一台安裝了Debian12的VPS虛擬機(推薦您購買一台阿里雲VPS或騰訊雲VPS虛擬主機,如果你更喜歡國外伺服器,推薦你嘗試Vultr上的VPS,註冊即送$50美元體驗,性價比非常高),當然你自己電腦或虛擬機器中也可以。 2.如果使用VPS,基於安全考慮,建議使用非root帳號,可以在Debian12

使用DockerCompose、Nginx和MariaDB優化PHP應用程式的網路效能簡介:在當今網路時代,網路效能對於Web應用程式的穩定性和回應速度至關重要。為了提高PHP應用程式的網路效能,我們可以使用容器化技術DockerCompose、高效率的Web伺服器Nginx和穩定的資料庫MariaDB。本文將詳細介紹如何使用這些工具來最佳化PHP應用的網

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

使用DockerCompose、Nginx和MariaDB優化PHP應用程式的效能問題在開發和部署PHP應用程式時,經常會遇到效能問題。為了解決這些問題,我們可以利用DockerCompose、Nginx和MariaDB來優化應用程式的效能。 DockerCompose是一個用來定義和管理多個Docker容器的工具。它可以幫助我們輕鬆地創建和運行多個容器
