- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试使用 sys_exec 在 unix 上运行 native 命令,但我已尝试将插件从 https://github.com/mysqludf/lib_mysqludf_sys 放入
进入 /usr/lib/x86_64-linux-gnu/mariadb18/plugin#
但当我尝试在下面运行此命令时:
创建函数 sys_exec 返回 int soname 'lib_mysqludf_sys.so';
我收到了这个回复:
错误 1126 (HY000):无法打开共享库“lib_mysqludf_sys.so”(错误号:11,错误的 ELF 类:ELFCLASS32)
这是 MariaDB 15.1。
最佳答案
我找到了解决这个问题的方法:
首先我们需要在unix上安装default-libmysqlclient-dev
运行命令:apt-get install default-libmysqlclient-dev
然后从以下位置下载存储库:https://github.com/mysqludf/lib_mysqludf_sys
下载完成后我们可以运行这个命令:
gcc -DMYSQL_DYNAMIC_PLUGIN -fPIC -Wall -m64 -I/usr/include/mysql -I. -shared lib_mysqludf_sys.c -o lib_mysqludf_sys.so
然后复制lib_mysqludf_sys.so
到MariaDB/MySQL plugins文件夹下,怎么知道是哪个文件夹?
MariaDB [(none)]> SHOW VARIABLES LIKE 'plugin_dir';
+---------------+---------------------------------------------+
| Variable_name | Value |
+---------------+---------------------------------------------+
| plugin_dir | /usr/lib/x86_64-linux-gnu/mariadb18/plugin/ |
+---------------+---------------------------------------------+
1 row in set (0.00 sec)
在我的例子中,我的命令应该是:
cp lib_mysqludf_sys.so/usr/lib/x86_64-linux-gnu/mariadb18/plugin/
在那之后,我们可以创建我们的触发器并运行我们需要在我们自己的操作系统上运行的一切:D
CREATE TABLE `trig_test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`random_data` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
);
DELIMITER @@
CREATE TRIGGER trig_test
AFTER INSERT ON `trig_test`
FOR EACH ROW
BEGIN
DECLARE cmd CHAR(255);
DECLARE result int;
SET cmd=CONCAT('node /tmp/script/script.js >> /tmp/script/result.txt');
SET result = sys_exec(cmd);
END;
@@
DELIMITER ;
INSERT INTO trig_test
(random_data)
VALUES('GOOOO!!!');
如果您无法运行您需要检查权限的命令,我将我的所有者和组从/tmp 更改为测试
chown -R mysql.mysql/tmp
然后一切正常!!!
关于Mysql sys_exec 无法打开共享库 'lib_mysqludf_sys.so' (errno : 11, wrong ELF class: ELFCLASS32),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55241615/
我正在使用 MySQL UDF 函数 sys_exec 在 MySQL 触发器中调用 Java 程序。您能否提供有关我如何将参数传递给 sys_exec 以便它调用 Java 程序的信息? 最佳答案
我有一个触发器调用带有参数的存储过程,该参数调用 SET result = sys_exec(cmd);。但它给出了错误“函数 sys_exec 不存在”。 我不知道该怎么办,周二我有演示文稿,由于这
问题:如何使用 sys_exec() 终止进程。 我正在尝试使用 sys_exec() 执行 shell 脚本。 我的 shell 脚本包含 killall process_name 当我执行上面的脚
我正在使用 godaddy 共享主机并尝试调用放置在同一服务器上的 PHP 来完成此操作我已经为相应的表创建了一个触发器,下面是代码 DELIMITER @@ CREATE TRIGGER my_tr
我在/usr/esercizi/上的 python 是: #!/usr/bin/python import datetime now = datetime.datetime.now() aa = no
我正在尝试触发 Laravel 控制台 PHP 命令以将每个插入的行推送到我的客户端 UI,但是在安装 lib_mysqludf_sys 之后该过程似乎不起作用。 sys_exec()/sys_eva
问题:我有一个包含某些记录的表。插入完成后,我想通过 MySQL 的 sys_* UDF 调用外部程序(php 脚本)。现在,问题 - 我已经将记录的 ID 传递给脚本的触发器。当我尝试通过脚本提取数
我已经在我的小型测试服务器上运行了 Windows 上的 sys_exec,并确认我可以通过运行 SELECT sys_exec('dir > c:\\tst\\out.txt') FROM dual
我正在尝试从 MariaDB 服务器运行 python 脚本。我已经为此安装了 mysqludf 库。我尝试使用 sys_exec 函数运行脚本,但没有结果。我创建了测试文件,它只是一个包含信息“完成
在 tbl_produk 上插入后,我在 mysql triger 中使用这个脚本 FOR EACH ROW BEGIN DECLARE cmd CHAR(255); DECLARE result I
我正在使用 phpmyadmin。我在 mysql 中使用触发器,它在表中插入内容后调用 php 脚本。我的触发器包含这个。 DECLARE result INT; SET result=(selec
我需要从触发器调用外部脚本来拦截数据库中的每个插入。这是因为我无法轮询该值,所以我正在为具有 ARM 架构且只有 250MB RAM 的嵌入式系统编写代码。触发器是正确的选项,并且触发器的代码运行良好
我正在尝试使用 sys_exec 在 unix 上运行 native 命令,但我已尝试将插件从 https://github.com/mysqludf/lib_mysqludf_sys 放入 进入 /
我是一名优秀的程序员,十分优秀!