mysql8调用HTTP请求

下载mysql-udf-http-1.0.tar.gz

链接:https://pan.baidu.com/s/1PslMSdeqDUE98GnYbG6d8g 
提取码:a740

安装

yum install -y libcurl*
tar -zxvf mysql-udf-http-1.0.tar.gz
cd mysql-udf-http-1.0
vi src/mysql-udf-http.c
//mysql8中没有my_bool数据类型,需要替换成bool
:%s/my_bool/bool/g
//--with-mysql替换成自己mysql安装包的路径
./configure --prefix=/usr/local/mysql-udf-http --with-mysql=/usr/local/mysql/bin/mysql_config
make && make install
//创建软连接
ln -s /usr/local/mysql-udf-http/lib/mysql/plugin/mysql-udf-http.so.0.0.0 /usr/local/mysql/lib/plugin/mysql-udf-http.so

创建函数

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';

发送请求

select CAST(http_get('http://www.baidu.com') AS CHAR CHARACTER SET utf8) as result

其他操作见作者博客

http://zyan.cc/mysql-udf-http/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL UDF (User-Defined Function)是一种允许用户自定义函数的机制,可以通过编写自定义函数来扩展MySQL的功能。其中,mysql-udf-http是一种UDF,它允许在MySQL中发起HTTP请求,并返回结果。使用mysql-udf-http可以使MySQL与外部系统进行数据交互,例如调用Web服务、获取外部数据等。 使用mysql-udf-http需要安装libcurl库,因为mysql-udf-http通过libcurl库来实现HTTP请求。安装好libcurl库后,需要编译mysql-udf-http的源代码,并将编译后的库文件加载到MySQL中。 下面是一个使用mysql-udf-http的示例: 1. 创建一个名为test_http数据库,并创建一个名为test_table的表: ``` CREATE DATABASE test_http; USE test_http; CREATE TABLE test_table ( id INT PRIMARY KEY, name VARCHAR(20) ); ``` 2. 向test_table表中插入一些数据: ``` INSERT INTO test_table VALUES (1, 'John'), (2, 'Mary'), (3, 'David'); ``` 3. 创建一个名为get_data的函数,用于通过HTTP GET请求获取数据: ``` DELIMITER // CREATE FUNCTION get_data(url VARCHAR(100)) RETURNS TEXT DETERMINISTIC BEGIN DECLARE result TEXT DEFAULT ''; SET @cmd = CONCAT('SELECT http_get("', url, '") INTO @result'); PREPARE stmt FROM @cmd; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET result = @result; RETURN result; END// DELIMITER ; ``` 4. 调用get_data函数,通过HTTP GET请求获取test_table表的数据: ``` SELECT get_data('http://localhost/test.php'); ``` 其中,test.php文件的内容如下: ``` <?php $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = ''; $dbname = 'test_http'; $conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname); if (!$conn) { die('Could not connect: ' . mysqli_connect_error()); } $result = mysqli_query($conn, 'SELECT * FROM test_table'); $data = array(); while ($row = mysqli_fetch_assoc($result)) { $data[] = $row; } echo json_encode($data); mysqli_close($conn); ?> ``` 运行以上代码后,将通过HTTP GET请求获取test_table表的数据,并将数据以JSON格式返回。在MySQL调用get_data函数后,将返回通过HTTP请求获取的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值