一、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. 关于classList的API

    <body class="a b c"> ...... </body> document.body.classList可以取得body的classList属 ...

  2. 常用shell

    常用shell命令 选项 参数 ctrl+alt+f(1-6)字符界面7图形界面 ls 列出当前目录 -a 查看文件的详细信息 -L 查看所有的文件 包括隐藏文件 pwd 查看当前的工作路径 cd 切 ...

  3. uva 10934(dp)

    题意:k个水球,现在在一个n层建筑物上,水球可能在某一层层以上扔下去会破掉,现在求一个最少的次数使得用这k个水球能确定出哪一层. 思路:假设有i个小球,还可以实验j次时,第一个小球从x处扔下去,如果破 ...

  4. git使用和理解之一(不含分支)

    0.前言 Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 工作区和暂存区: 我们写代码的地方就是工作区,代码写完后, ...

  5. [CentOS] 解决 crontab 无法读取环境变量的问题

    参考资料:http://blog.slogra.com/post-238.html 1. 问题描述 一段数据处理的 shell 程序,在 shell 中手动运行,可以正确执行.但是,把它放在 cron ...

  6. 用Curl测试POST

    POST请求 http://172.16.102.208:8089/wiapi/score?leaderboard_id=1&score=36&app_key=66 目的1:通过脚本发 ...

  7. hadoop运行原理之Job运行(五) 任务调度

    接着上篇来说.hadoop首先调度辅助型task(job-cleanup task.task-cleanup task和job-setup task),这是由JobTracker来完成的:但对于计算型 ...

  8. ios企业应用部署

    最近公司要整一套企业内部用的应用,ios版本不上线要求可以随时下载使用,先是申请了企业者开发账号,然后发布应用,部署在自己服务器上供用户下载安装. 第一步:准备好应用相关的东西,基本上就是两个文件,x ...

  9. μC/OS-Ⅲ系统的任务挂起表

    在μC/OS-Ⅲ系统中任务挂起表与任务就续表十分相似,只不过任务就续表记录就绪状态的任务,任务挂起表记录等待某个内核对象的任务.任务挂起表是一个类型为OS_PEND_LIST的数据结构,包含三个成员: ...

  10. wordpress及其simple_press插件完成 的中文论坛

    wordpress 及 其simple_press插件的论坛功能 开发准备: 一直从事java及as3方面的开发,首次听同事提起PHP的wordpress,于是上网查了下, 才知道这款软件的强大,转而 ...