一、SQL Relay是什么?

SQL Relay是一个开源的数据库池连接代理服务器



二、SQL Relay支持哪些数据库?

* Oracle

* MySQL

* mSQL

* PostgreSQL

* Sybase

* MS SQL Server

* IBM DB2

* Interbase

* Sybase

* SQLite

* Lago

* ODBC

* MS Access



三、安装和配置;

不说废话了,开始安装SQL Relay,到 http://sqlrelay.sourceforge.net/ 去下载相应的软件

安装SQL Relay需要先安装Rudiments, 在 http://sqlrelay.sourceforge.net/download.html 可以找到



1、安装Rudiments:

# tar vxzf rudiments-0.28.2.tar.gz

# cd rudiments-0.28.2

# ./configure --prefix=/usr/local/rudiments

# make

# make install

至此,rudiments安装结束



2、安装SQL Relay:

# tar vxzf sqlrelay-0.36.4.tar.gz

# cd sqlrelay-0.36.4

# ./configure --prefix=/usr/local/sqlrelay --with-rudiments-prefix=/usr/local/rudiments --with-mysql-prefix=MySQL安装路径 --with-freetds-prefix=FreeTDS安装路径 --with-oracle-home=Oracle安装路径 --with-php-prefix=PHP安装路径

# make

# make install

安装结束,以上编译参数根据个人需要来设定,因为我同时需要Oracle SQLserver MySQL,所以才加了这么多参数的



3、设置PHP:

修改php.ini

extension_dir = "./"

把以上内容修改为:

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922"

根据PHP安装的路径来修改,并不是每个版本的PHP都是这个路径

在php.ini中添加如下内容

extension=sql_relay.so

接下来,介绍SQL Relay如何连接SQL Server

修改FreeTDS的配置文件freetds.conf

加入如下内容:

[msde]

host = 172.16.20.203

port =1433

tds version = 8.0

client charset = GB2312

请根据个人需求来修改



4、修改SQL Relay的配置文件

# cd /usr/local/sqlrelay/etc

# cp sqlrelay.conf.example sqlrelay.conf

把sqlrelay.conf的内容改为:

<?xml version="1.0"?>

<!DOCTYPE instances SYSTEM "sqlrelay.dtd">

<instances>

<instance id="msdetest" port="9000" socket="/tmp/msdetest.socket" dbase="freetds" connections="5" maxconnections="10" maxqueuelength="0" growby="1" ttl="60" endofsession="commit" sessiontimeout="5" runasuser="nobody" runasgroup="nobody" cursors="5" authtier="listener"
handoff="pass">

<users>

<user user="sa" password="sa"/>

</users>

<connections>

<connection connectionid="msdetest" string="server=msde;db=pubs;user=sa;password=sa;" metric="1"/>

</connections>

</instance>

</instances>



四、启动SQL Relay,并测试;



1、启动 SQL Relay

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

# sqlr-start -id msdetest



2、使用SQL工具:

# sqlrsh -id msdetest

可以直接输入SQL语句

停止SQL Relay:

# sqlr-stop msdetest



3、测试PHP:

写一个PHP文件,内容如下:

<?

$con=sqlrcon_alloc("msdetest",9000,"/tmp/msdetest.socket","sa","sa",0,1);

$cur=sqlrcur_alloc($con);

sqlrcur_sendQuery($cur,"select * from t_gifts");

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

?>

执行这个PHP文件,看看能不能出现数据

全文结束~~

Good Luck!!!

作者:leoking01 发表于2014-11-12 10:31:48 原文链接
阅读:6 评论:0 查看评论

[转]SQL Relay使用的更多相关文章

  1. Microsoft SQL Server Trace Flags

    Complete list of Microsoft SQL Server trace flags (585 trace flags) REMEMBER: Be extremely careful w ...

  2. 淘宝技术发展(Java时代:脱胎换骨)

    我的师父黄裳@岳旭强曾经说过,“好的架构图充满美感”,一个架构好不好,从审美的角度就能看得出来.后来我看了很多系统的架构,发现这个言论基本成立.那么反观淘宝前面的两个版本的架构,你看哪个比较美? 显然 ...

  3. 读《淘宝技术这十年》 总结下web架构的发展

    关键词就两 分布式 缓存 分布式 数据库,应用服务器等的多节点部署,数据库的读写分离,剥离文件系统 缓存 数据缓存 静态页面缓存 php时代 最初LAMP起步 并将数据库做读写分离,拆分为主库+从库 ...

  4. Error in Log_event::read_log_event(): 'Event too small', data_len: 0, event_type: 0

    MySQL主从复制报错如下: 2018-04-11 09:11:16 2400 [Note] Slave SQL thread initialized, starting replication in ...

  5. Nginx学习笔记(反向代理&搭建集群)

    一.前言 1.1 大型互联网架构演变历程 1.1.1 淘宝技术 淘宝的核心技术(国内乃至国际的 Top,这还是2011年的数据) 拥有全国最大的分布式 Hadoop 集群(云梯,2000左右节点,24 ...

  6. mysql问题处理积累

    1.mysql errors:message from server: "Host 'xxx' is blocked because of many connection errors; u ...

  7. mariadb(mysql)从库relaylog损坏无法同步的处理方法

    故障说明 晚上备用服务器自动重启,收到报警,备用服务器上的mariadb从库无法去同步主库.启动mariadb后,报如下错误(重点看红色字体)  mariadb_1 | -- :: [Note] Pl ...

  8. Error_code: 1594(mysql 5617)主从同步报错

    报错信息 2017-09-05 09:37:22 7425 [ERROR] Slave SQL: Relay log read failure: Could not parse relay log e ...

  9. 在腾讯开发 QQ IM 的工作体验是怎样的?

    转载 http://blog.csdn.net/kobejayandy/article/details/8685271 目录 一.引言 二.个人网站 三.Oracle/支付宝/旺旺 四.淘宝技术发展( ...

随机推荐

  1. loadrunner将参数文件转换为UTF-8编码

    在使用loadrunner进行参数化的时候,对于有些信息,比如地址.人名等,很多时候需要传入中文,但是有的时候会碰到字符编码不对导致脚本出错. 下面介绍两种loadrunner中可以使用的编码转化为U ...

  2. PHP控制div块大小和颜色的例子

    网站为了设计的更好看,会有很多的样式,而用php来控制样式很常见,无聊写了一个可以用于列表展示的样式,不喜忽喷. 1.先添加一个style样式控制div默认不换行 <style>div{f ...

  3. IE9,10中console对象的bug

    首先上一段很简单的代码 <!DOCTYPE html> <html> <head> <title></title> <meta htt ...

  4. UIPIckerView现实城市选择

    实现城市选择,选中省时,后来自动显示相对应的城市,并且下面会打印出来对应的省和城市 . 因为plist里面是一个一个的字典. 1.字典转模型 HMCities.h #import <Founda ...

  5. Can't connect to MySQL server on '127.0.0.1' (111)

    [root@localhost ~]# service mysqld statusmysqld 已停 (1)查看MySQL 服务是否已经开启: service mysqld  status (2)启动 ...

  6. javasript_数据结构和算法_栈

    //-----------------------------------存储结构为数组-------------------------------------------- function St ...

  7. H5之contenteditable

    场景: <div id='content' contenteditable='true' > hello </div> <button id='caret'>设置光 ...

  8. Tomcat容器虚拟路径设置

    1.[官方文档]在tomcat\conf下server.xml中找到 <Host name="localhost" appBase="webapps" u ...

  9. oc--UINavigationController控制器

    UINavigationController导航控制器 UINavigationController导航控制器,是多个界面间跳转的重要元素,可以理解为它存储着多个viewController,它的存储 ...

  10. 在Django中进行注册用户的邮件确认

    之前利用Flask写博客时(http://hbnnlove.sinaapp.com),我对注册模块的逻辑设计很简单,就是用户填写注册表单,然后提交,数据库会更新User表中的数据,字段主要有用户名,哈 ...