mysql主动通知业务系统的解决方案—mysql-udf-http

mysql-udf-http安装及错误解决
mysql-udf-http是简单的MySQL用户自定义函数,有http_get()等四个函数,可在MySQL数据库中用HTTP协议进行REST操作。本文介绍其安装方式,包括下载并安装curl、下载安装包等,还给出常见错误的解决办法,如mysql_config文件不存在的处理等。

mysql-udf-http 是一款简单的MySQL用户自定义函数,具有http_get()、http_post()、http_put()、http_delete()四个函数,可以在MySQL数据库中利用HTTP协议进行REST相关操作,它的安装方式如下:

  1. 下载并安转curl:

        wget http://curl.haxx.se/download/curl-7.21.1.tar.gz
    	tar zxvf curl-7.21.1.tar.gz
    	cd curl-7.21.1/
    	./configure --prefix=/usr
    	make && make install
    	cd ../
    
  2. 下载mysql-udf-http-1.0.tar.gz:(百度网盘:http://pan.baidu.com/s/1nuYZqR3)

    	tar zxvf mysql-udf-http-1.0.tar.gz
    	cd mysql-udf-http-1.0/
    	./configure --prefix=/usr/local/mysql --with-mysql=/usr/bin/mysql_config
    	make && make install
    

    注意prefix记得改成你自己的mysql安装目录

  3. 正常的情况mysql-udf-http.so等文件将安装至/usr/local/mysql/lib/plugin下,
    如果不是,那么先找到这个文件的位置:

    find / -name mysql-udf-http.so
    

    加一个软连接:

    ln -s /usr/lib64/mysql/lib/mysql/plugin/mysql-udf-http.so /usr/lib64/mysql/plugin/mysql-udf-http.so
    
  4. 安装成功后,进到mysql控制台,注册相关函数:

    create function http_get returns string soname 'mysql-udf-http.so';
    create function http_post returns string soname 'mysql-udf-http.so';
    create function http_put returns string soname 'mysql-udf-http.so';
    create function http_delete returns string soname 'mysql-udf-http.so'; 
    
  5. 在业务表中加入更新操作的触发器:

    DELIMITER $$ 
    DROP TRIGGER IF EXISTS test_update$$
    CREATE TRIGGER test_update  
    AFTER UPDATE ON sp_bal  
    FOR EACH ROW BEGIN  
        SET @tt_re = (SELECT http_get(CONCAT('http://192.168.99.200:8005/test?id=', OLD.id)));
    END; 
    $$
    

常见错误解决:

1、如果mysql_config文件不存在(执行 find / -name mysql_config,提示没有找到):yum install mysql-devel;
2、如果执行./configure --prefix=/usr/local/mysql --with-mysql=/usr/local/mysql/bin/mysql_config 时候报错:checking for DEPS… configure: error: Package requirements (libcurl >= 7.15) were not met:No package ‘libcurl’ found

如果是第一步安装cur成功,那么执行下面的命令:

[root@localhost mysql-udf-http-1.0]# which curl
/usr/bin/curl
[root@localhost mysql-udf-http-1.0]# find / -name libcurl.pc
/home/mysql/curl-7.21.1/libcurl.pc
/usr/lib/pkgconfig/libcurl.pc
[root@localhost mysql-udf-http-1.0]# cp /usr/lib/pkgconfig/libcurl.pc /usr/lib64/pkgconfig/

如果提示缺少libcurl,就安装curl:yum install curl*

### Windows 系统下 MySQL 8.0 的 `mysql-udf-http` 插件或库下载与安装 目前,`mysql-udf-http` 主要针对 Linux 平台进行了优化和支持,而对于 Windows 系统的支持较为有限。然而,仍有一些方法可以帮助用户在 Windows 上实现类似功能。 #### 下载适用的插件或库 由于官方并未提供直接支持 Windows 的 `mysql-udf-http` 插件版本,因此需要寻找社区维护的第三方构建或者自行编译。以下是两种主要解决方案: 1. **查找预编译二进制文件** 社区中可能存在一些开发者已经为 Windows 编译好的 `mysql-udf-http.dll` 文件。可以通过搜索引擎尝试找到这些资源,但务必注意来源可靠性以防止恶意软件感染[^4]。 2. **自行编译插件** 若无法获得可信的预编译版,则可以考虑自己动手编译适合 Windows 的动态链接库(DLL)。具体流程如下: - 安装必要的开发工具链,如 Visual Studio 和 CMake。 - 获取最新源代码仓库副本:https://github.com/mysqludf/lib_mysqludf_http.git。 - 修改项目配置使其适配 Windows 构建环境。 ```cmd git clone https://github.com/mysqludf/lib_mysqludf_http.git cd lib_mysqludf_http cmake . msbuild ALL_BUILD.vcxproj ``` 成功之后应该能在输出目录发现生成的目标文件 `lib_mysqludf_http.dll`[^5]。 #### 注册 UDFMySQL 无论采用哪种方式得到最终产物,都需要按照标准程序将其加入到运行中的实例当中去: ```sql CREATE FUNCTION http_get RETURNS STRING SONAME 'lib_mysqludf_http.dll'; CREATE FUNCTION http_post RETURNS STRING SONAME 'lib_mysqludf_http.dll'; ``` 以上两条指令分别对应 GET 请求和 POST 请求的功能定义[^6]。 --- ### 注意事项 - 对于生产环境中使用此类扩展需格外谨慎评估其安全性影响; - 不同操作系统架构之间可能会存在兼容性差异,请提前测试验证无误后再投入正式业务场景之中。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值