欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2022-06-14 17:05:57
...

一、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是什么?

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的内容改为:













四、启动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; $rowfor ($col=0; $colecho sqlrcur_getField($cur,$row,$col);
echo ",";
}
echo "
\n";
}
sqlrcur_free($cur);
sqlrcon_free($con);
?>

执行这个PHP文件,看看能不能出现数据
全文结束~~

参考:http://hi.baidu.com/mrvsumbeujeinxe/item/8ba0c60888cf47c490571896