文章目录
一、安装Mysql
二、安装libcurl
三、安装mysql-http-udf
四、使用mysql-http-udf
实验1:mysql-http-udf与web服务器
准备服务器
1、创建项目
2、编写代码
3、打开服务器
Mysql测试准备
1、登陆MySQL
2、创建测试表
3、创建 触发器
4、测试
5、备注
实验2:验证“MySQL返回json”【不要看】
实验3:触发器中使用count(1)【不要看】
实验4:同时发送多个请求[允许]
实验2:mysql结合mysql-http-udf,使用redis测试
背景:项目中遇到一个问题,如果数据库中的数据变动之后及时通知前台
通过查找资料,决定采用websocket技术让服务器主动通过客户端。
但是问题来了,服务器如何得知数据库中有数据变化呢?我想了以下几种方法
(1)、服务器轮询。这个不好,只不过从客户端轮询–>服务器—>数据库 变成了服务器(轮询)—>数据库。有一点点改进
(2)、服务器监听数据库。这个相当于长轮询,pass
(3)、数据库中使用触发器和udf扩展服务,当数据库中有变化时,查询出结果通过http返回给服务器,服务器在通过websocket转交给客户端,即数据库–>服务器—>客户端。但是在做的过程中,发现MYSQL的触发器辣鸡的一笔,决定更改架构数据库–>服务器–>数据库—>服务器–>客户端。
(4)、将来的优化方向:redis缓存,消息队列,消息中间件
文章目录
一、安装Mysql
二、安装libcurl
三、安装mysql-http-udf
四、使用mysql-http-udf
实验1:mysql-http-udf与web服务器
准备服务器
1、创建项目
2、编写代码
3、打开服务器
Mysql测试准备
1、登陆MySQL
2、创建测试表
3、创建 触发器
4、测试
5、备注
实验2:验证“MySQL返回json”【不要看】
实验3:触发器中使用count(1)【不要看】
实验4:同时发送多个请求[允许]
实验2:mysql结合mysql-http-udf,使用redis测试
一、安装Mysql
$ uname -a
Linux ubuntu 4.18.0-13-generic #14-Ubuntu SMP Wed Dec 5 09:04:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
1.查看是否安装
$ sudo netstat -tap | grep mysql
2.安装
$ sudo apt-get update
$ sudo apt-get install mysql-server
$ sudo apt-get install mysql-client
$ sudo apt-get install libmysqlclient-dev
备注:安装了libmysqlclient-dev以后,在mysql安装目录下/usr/bin才会有mysql_config配置文件。
3.测试是否安装成功
sudo netstat -tap | grep mysql
备注:
此时mysql的安装目录为:/usr/bin
mysql插件的目录(可以登陆mysql以后使用命令show variables like ‘%plugin%’;查看) 我的为:/usr/lib/mysql/plugin
二、安装libcurl
$ sudo apt-get install libcurl4-openssl-dev
三、安装mysql-http-udf
1、下载:mysql-udf-http-1.0.tar.gz
网址:https://code.google.com/archive/p/mysql-udf-http/downloads
或者:https://pan.baidu.com/s/1nuYZqR3
2、解压:
$ tar zvxf mysql-udf-http-1.0.tar.gz
$ cd mysql-udf-http-1.0/
3、配置
$ ./configure --prefix=/usr/local/mysql-udf-http --with-mysql=/usr/bin/mysql_config
*******
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating src/curl_config.h
config.status: executing depfiles commands
备注:
其中–prefix是你安装mysql-udf-http指定的安装目录,–with-mysql是你安装的mysql目录下的mysql_config文件所在位置。
遇到的错误:configure: error: no acceptable C compiler found in $PATH
解决:sudo apt-get install gcc
4、安装
$ sudo make
$ sudo make install
5.添加软链
sudo ln -s /usr/local/mysql-udf-http/lib/mysql/plugin/mysql-udf-http.so.0.0.0 /usr/lib/mysql/plugin/mysql-udf-http.so
5.将安装好的插件拷贝到mysql的插件目录下
$ sudo cp /usr/local/mysql-udf-http/lib/mysql-udf-http.so.0.0.0 /usr/lib/mysql/plugin/mysql-udf-http.so
四、使用mysql-http-udf
登陆Mysql
1.创建自定义函数
create function http_get returns string soname 'mysql-udf-http.so';
create function http_post returns string soname 'mysql-udf-http.so