【问题标题】:MySQL UDF sys_execMySQL UDF sys_exec
【发布时间】:2012-09-09 18:15:34
【问题描述】:

我正在使用 MySQL UDF 函数sys_exec 在 MySQL 的触发器中调用 Java 程序。您能否提供有关如何将参数传递给 sys_exec 以便它调用 Java 程序的信息?

【问题讨论】:

    标签: mysql mysql-udf


    【解决方案1】:

    您可以使用此link to use sys_exec function。它说,

    sys_exec sys_exec 接受一个命令字符串参数并执行它。 语法

    sys_exec(arg1) 参数和返回值

    arg1 : 对当前操作系统有效的命令字符串或 执行环境。返回一个(整数)退出代码 执行的过程。安装

    将共享库二进制文件放在适当的位置。登录到 mysql 作为 root 或其他具有足够权限的用户,并且 选择任何数据库。然后,使用以下 DDL 创建函数 语句:CREATE FUNCTION sys_exec RETURNS INT SONAME 'lib_mysqludf_sys.so'; 该功能将在所有数据库中全局可用。卸载函数,运行以下语句:DROP FUNCTION sys_exec;

    为了执行 Java 程序,您应该将 arg1 填写为 "java <absolute path to precompiled program to run>"

    注意:java的路径应该事先配置好。

    希望对你有帮助...

    【讨论】:

    • shubhansh 我已经做了所有的事情,但无法纠正可以让 java 程序调用的参数。您能否提供有关 sys_exec 采用的参数字符串的信息。
    • 您输入的参数是什么?你采取了哪些步骤?提供更多细节......
    • sys_exec('java /home/Desktop/helloWorld') 这是作为参数传递的。这里的 helloWorld 是一个未被 exec 函数调用的类。
    • 你能通过终端执行上述命令吗? java的路径是在系统变量中设置的吗?您的 MySQL 是否有足够的权限来启动新进程。尝试以 root 身份运行 MySQL 服务器,然后检查。返回值是多少?
    猜你喜欢
    • 2015-02-19
    • 2012-10-03
    • 2019-12-15
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2016-07-27
    相关资源
    最近更新 更多