SQL Relay按照其官网http://sqlrelay.sourceforge.net/index.html上所说是:A powerful database connection management solution.

翻译为中文也就是说SQL Relay是一个开源的数据库池连接代理服务器。

目前SQL Relay支持的数据库很多:

SQL Relay supports Oracle, MySQL, PostgreSQL, SAP/Sybase, IBM DB2, Informix, Firebird and SQLite databases directly, using the native client API's for those databases.
Support is provided for Microsoft SQL Server via the FreeTDS API.

支持的API也是非常丰富的

Guides: C++, C, C#, Perl, PHP, Python, Ruby, Java, TCL, Erlang, node.js 
References: C++, C, C#, Perl, PHP, Python, Ruby, Java, TCL, node.js,

本人讲述怎么在Linux+PHP+FreeDTS环境使用连接池,其实PHP->SQL Relay->FreeDTS->数据库 这样的架构。

下面说安装使用

1.先安装rudiments

建议尽量安装新版,旧版可能会报错需要解决。

# wget http://sourceforge.net/projects/rudiments/files/rudiments/0.28.2/rudiments-0.28.2.tar.gz/download
# tar xvzf rudiments-0.54.tar.gz
# cd rudiments-0.54
# ./configure --prefix=/usr/local/rudiments
# make && make install

2.再安装sqlrelay

# wget https://sourceforge.net/projects/sqlrelay/files/sqlrelay/0.64/sqlrelay-0.64.tar.gz/download
# tar vxzf sqlrelay-0.64.tar.gz
# cd sqlrelay-0.64
# ./configure --prefix=/usr/local/sqlrelay --with-rudiments-prefix=/usr/local/rudiments  --with-freetds-prefix=/usr/local/freetds --with-php-prefix=/usr/local/php


# make && make install

3.修改php配置文件

# vim /usr/local/php/lib/php.ini
增加扩展

extension ="sql_relay.so"

注意:需要确认phpinfo

4.修改freeDTS配置

关于freeDTS的安装参考此文:http://blog.csdn.net/unix21/article/details/47449901

修改FreeTDS的配置文件freetds.conf
# vim /usr/local/freetds/etc/freetds.conf

加入以下内容

[msdetest]
host = 192.168.1.1
port =1433
tds version = 7.0
client charset = UTF-8

不然会中文乱码,需要对应的编码类型GB2312等等。

5.修改SQL Relay的配置文件

# cd /usr/local/sqlrelay/etc/
# cp sqlrelay.conf.example  sqlrelay.conf
# vim sqlrelay.conf

整个配置非常好理解

<?xml version="1.0"?>
<!DOCTYPE instances SYSTEM "sqlrelay.dtd">
<instances>
<instance id="msdetest" port="9001" socket="/tmp/msdetest.socket" dbase="freetds" connections="10" maxconnections="50" maxqueuelength="0" growby="1" ttl="60" endofsession="commit" sessiontimeout="5" runasuser="nobody" runasgroup="nobody" cursors="5" authtier="listener" handoff="pass">
<users>
<user user="admin" password="admin"/>
</users>
<connections>
<connection connectionid="msdetest" string="server=msde;db=test;user=admin;password=admin;" metric="1"/>
</connections>
</instance>
</instances>

6.启动SQL Replay

# export PATH=$PATH:/usr/local/sqlrelay/bin
启动:

# sqlr-start -id msde

上图是成功启动,如果配置错误会提示数据库连不上之类的。

SQL工具

# sqlrsh -id msde

7.php使用连接池

<?php
$con=sqlrcon_alloc("msdetest",9001,"/tmp/msdetest.socket","admin","admin",0,1);
$cur=sqlrcur_alloc($con);
sqlrcur_sendQuery($cur,"SELECT top 10 * FROM test order by id desc");
for ($row=0; $row<sqlrcur_rowCount($cur); $row++) {
for ($col=0; $col<sqlrcur_colCount($cur); $col++) {
echo sqlrcur_getField($cur,$row,$col);
echo ",";
}
echo "<br>\n";
}
sqlrcur_free($cur);
sqlrcon_free($con);
?>

前端网页从连接池取出数据

SQL Relay的PHP函数API

http://sqlrelay.sourceforge.net/sqlrelay/programming/php.html

使用了连接池之后从数据库那边可以看出连接池是保持连接的,我们设定的最小连接池是10个。

参考:http://www.cnblogs.com/zhangjun516/archive/2013/03/12/2955162.html

PHP数据库连接池SQL Relay安装使用相关推荐

  1. sqlrelay mysql_数据库连接池SQL Relay安装使用-Java架构师必看

    SQLRelay按照其官网http://sqlrelay.sourceforge.net/indePHP SQL Relay按照其官网http://sqlrelay.sourceforge.net/i ...

  2. python数据库管理实例_Python数据库连接池实例——PooledDB

    不用连接池的MySQL连接方法 import MySQLdb conn= MySQLdb.connect(host='localhost',user='root',passwd='pwd',db='m ...

  3. SQL Relay开源的数据库池连接代理服务器

    一.SQL Relay是什么? SQL Relay是一个开源的数据库池连接代理服务器 二.SQL Relay支持哪些数据库? * Oracle * MySQL * mSQL * PostgreSQL ...

  4. Node.js SQL数据库操作 (上)(操作MySQL数据库及 数据库连接池)

    文章目录 Node.js MySQL驱动 操作 MySQL 数据库 连接 MySQL 数据库 增删改查操作 防止 SQL 注入攻击 数据库连接池操作 Node.js MySQL驱动 Node.js的原 ...

  5. JDBC:软件架构、概述、数据库连接:普通项目添加jar包,URL、sql注入,类型转换,查询流程表、操作BLOB类型字段、批量插入,替换jar包、事务/数据库连接池

    0 常识说明 0.1 软件架构方式介绍 B/S架构:浏览器 与 服务器之间的交互. C/S架构:安装的本地软件(如:今日头条等) 与 服务器进行交互. 0.2 JavaWeb技术概览 JDBC核心技术 ...

  6. JDBC学习总结(二)JDBC操作Blob类型字段高效的批量插入JDBC处理数据库事务将多个SQL看成一个事务执行数据库连接池C3P0DBCPDruidDBUtils工具类实现CRUD

    JDBC学习总结(二)JDBC操作Blob类型字段/高效的批量插入/JDBC处理数据库事务/将多个SQL看成一个事务执行/数据库连接池C3P0/DBCP/Druid/DBUtils工具类实现CRUD ...

  7. ADO.NET中SQL Server数据库连接池

    实际上,大多数应用程序仅使用一个或几个不同的连接配置. 这意味着在执行应用程序期间,许多相同的连接将反复地打开和关闭. 为了使打开的连接成本最低,ADO.NET 使用称为连接池的优化方法. 连接池减少 ...

  8. ado.net mysql 连接池_ADO.NET中SQL Server数据库连接池

    实际上,大多数应用程序仅使用一个或几个不同的连接配置. 这意味着在执行应用程序期间,许多相同的连接将反复地打开和关闭. 为了使打开的连接成本最低,ADO.NET 使用称为连接池的优化方法. 连接池减少 ...

  9. log4j mysql 异步_spring boot:配置druid数据库连接池(开启sql防火墙/使用log4j2做异步日志/spring boot 2.3.2)...

    一,druid数据库连接池的功能? 1,Druid是阿里巴巴开发的号称为监控而生的数据库连接池 它的优点包括: 可以监控数据库访问性能 SQL执行日志 SQL防火墙 2,druid的官方站: http ...

最新文章

  1. 防抖 节流_每日一题手写函数防抖与节流
  2. python创建对象后调用对象的方法,报错TypeError: getName() takes 0 positional arguments but 1 was given
  3. 在Go中构建区块链 第7部分:网络
  4. 20)内联函数(其实,我不懂)
  5. hdu1337 水题
  6. Smarty中的变量
  7. Qt使用qss文件管理stylesheet
  8. WordPress图片采集网站源码 自带采集规则
  9. 文件摆渡是什么意思_小白学炒股:除权、填权、贴权是个什么东东?
  10. android 恢复出厂设置流程
  11. 吴彦祖计算机系统班 百度网盘,哪位吴彦祖(来自伸手党的夸赞) 有老詹的那场g6的百度云盘录像啊?我很需要...
  12. dubbo源代码编译打包错误解决
  13. echart 重新加载
  14. 用Java开发50个棋类游戏
  15. durbin watson检验表_Durbin-Watson自相关检验应用问题探讨
  16. 【持续更新中······】 各种模板+神奇黑科技
  17. 红帽子服务器虚拟化技术只要是,红帽子企业版.Linux.5
  18. 推荐一个文献下载神器!免费英文文献网站还能直接翻译
  19. Must specify port after ':' in connection string问题
  20. 用jmeter对抽奖接口进行抽奖概率分析测试

热门文章

  1. python正则表达式_Python正则表达式简记和re库!
  2. php不可执行会怎样,从PHP运行可执行文件而不会产生shell
  3. java val$name_匿名内部类 this.val$的问题
  4. MySQL导出数据反单引号_使用mysqldump导出数据时对字段中包含的单引号的处理
  5. basequickadapter详解_在kotlin中如何使用BaseQuickAdapter适配器
  6. C++:多线程中的小白(2)线程启动、结束、创建线程、join、detach
  7. 和12岁小同志搞创客开发:手撕代码,Arduino IDE 软件下载和环境搭建
  8. Linux那些事儿 之 戏说USB(20)设备的生命线(三)
  9. TypeScript 的 ?: 、两个问号、?. 分别是什么意思?
  10. 几种经典的居中技巧(垂直和水平居中)