是否可以在 Amazon RDS 上使用 MySQL UDF?
Is it possible to use MySQL UDF on Amazon RDS?
我需要在数据库更改时发送 HTTP 请求,所以我使用的是 mysqludf 扩展。
它在本地工作,但我怎样才能让它在 Amazon RDS 上也工作?如果不可能,我需要一个解决方案,将 MySQL 触发器与 sys_exec
函数或类似的东西一起使用。
有人可以帮助我吗?
谢谢!
绝对不是。 RDS 实例以两种方式锁定,以防止您安装 UDF;不要与存储函数混淆,UDF 是用 C 编写并编译的。然后必须将二进制共享对象文件复制到 MySQL 服务器的文件系统,您无法使用 RDS(这是一个)访问该文件系统,并且您必须具有 SUPER
权限才能实际加载来自文件的 UDF 插件,RDS 没有提供(那是两个)。
此外,您不能在 RDS 上使用 sys_exec()
或 sys_eval()
,因为这些函数不是内置的。它们也是 UDF 插件。
这是与 RDS(或任何 "managed" 数据库服务器服务,我怀疑)的权衡之一。为了换取简单性和点击配置,您需要放弃一些东西。
在 RDS 中没有办法做你想做的事。
如果您的最终要求是通过从 RDS 数据库上的某些 sql 操作触发来调用某些外部 API,您可以利用 AWS SNS 和 lambda 来实现此目的。这不是一条直路,但会达到目的。事实上,我已使用此解决方法来满足我的要求之一。您可以找到线程 here.
我需要在数据库更改时发送 HTTP 请求,所以我使用的是 mysqludf 扩展。
它在本地工作,但我怎样才能让它在 Amazon RDS 上也工作?如果不可能,我需要一个解决方案,将 MySQL 触发器与 sys_exec
函数或类似的东西一起使用。
有人可以帮助我吗?
谢谢!
绝对不是。 RDS 实例以两种方式锁定,以防止您安装 UDF;不要与存储函数混淆,UDF 是用 C 编写并编译的。然后必须将二进制共享对象文件复制到 MySQL 服务器的文件系统,您无法使用 RDS(这是一个)访问该文件系统,并且您必须具有 SUPER
权限才能实际加载来自文件的 UDF 插件,RDS 没有提供(那是两个)。
此外,您不能在 RDS 上使用 sys_exec()
或 sys_eval()
,因为这些函数不是内置的。它们也是 UDF 插件。
这是与 RDS(或任何 "managed" 数据库服务器服务,我怀疑)的权衡之一。为了换取简单性和点击配置,您需要放弃一些东西。
在 RDS 中没有办法做你想做的事。
如果您的最终要求是通过从 RDS 数据库上的某些 sql 操作触发来调用某些外部 API,您可以利用 AWS SNS 和 lambda 来实现此目的。这不是一条直路,但会达到目的。事实上,我已使用此解决方法来满足我的要求之一。您可以找到线程 here.