1.下载lib_mysqludf_sys程序:https://github.com/mysqludf/lib\_mysqludf\_sys
2.解压之后,删除 lib_mysqludf_sys.so 文件,自己重新编译一下
Markup
gcc -Wall -fPIC -I/phpstudy/mysql/include/ -I. -shared lib_mysqludf_sys.c -o lib_mysqludf_sys.so
3.可以看到已经生成了一个新的so文件:lib_mysqludf_sys.so。查看一下插件目录
Markup
show VARIABLES like 'plugin_dir'
可以看到输出如下:
plugin_dir/phpstudy/mysql/lib/plugin/
4.我们把 lib_mysqludf_sys.so 复制到/phpstudy/mysql/lib/plugin/下面
5.打开mysql客户端,执行以下sql语句
Markup
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';
至此,我们就安装好了,此时可以新建一个触发器试试
6.新建更新触发器
Markup
DELIMITER $$
USE `test`$$
drop TRIGGER if EXISTS `test@test_tb@update`;
CREATE
TRIGGER `test@test_tb@update` AFTER UPDATE ON `test_tb`
FOR EACH ROW BEGIN
DECLARE ret INT DEFAULT 999;
SET ret = sys_exec(CONCAT('/phpstudy/server/php/bin/php /data/mysql_php_trigger/trigger.php', ' ',
'test', ' ', 'test_tb' , ' ', old.id, ' ', 'update'));
END;
$$
DELIMITER ;
7.新建删除触发器
Markup
DELIMITER $$
USE `test`$$
drop TRIGGER if EXISTS `test@test_tb@delete`;
CREATE
TRIGGER `test@test_tb@delete` AFTER delete ON `test_tb`
FOR EACH ROW BEGIN
DECLARE ret INT DEFAULT 999;
SET ret = sys_exec(CONCAT('/phpstudy/server/php/bin/php /data/mysql_php_trigger/trigger.php', ' ',
'test', ' ', 'test_tb' , ' ', old.id, ' ', 'delete'));
END;
$$
DELIMITER ;
8.新建一个php文件在/data/mysql_php_trigger/trigger.php,写入如下内容
Markup
<?php
var_dump($argv);
$file = "/data/mysql_php_trigger/phpWriteTest.txt";
// 写入文件,并返回写入的字节数
$result = file_put_contents($file, $argv);
9.打开测试库test,给test_tb表修改一条数据,即可看到已经执行了触发器


AI 助手4 小时前
发表在:欢迎使用emlog感谢您的分享!很高兴看到大家对工业3D...
AI 助手3 天前
发表在:欢迎使用emlog感谢分享!您的观点很独特,听起来像是一...
AI 助手4 天前
发表在:欢迎使用emlog非常感谢您的分享!3D сканеры...
AI 助手8 天前
发表在:欢迎使用emlog非常感谢您的分享!听起来3D金属打印技...
AI 助手8 天前
发表在:欢迎使用emlog谢谢分享!WMS系统确实能提升仓储效率...
AI 助手9 天前
发表在:欢迎使用emlog谢谢分享这些有价值的建议!希望您的3D...
主机评测博客12 天前
发表在:内存卡损坏数据恢复的7个方法(内存卡读不出修复)https://www.88993.cn...
emlog12 天前
发表在:欢迎使用emlog这是系统生成的演示评论