[轉]SQL Relay使用

1、SQL Relay是什麼?
php

SQL Relay是一個開源的數據庫池鏈接代理服務器html


2、SQL Relay支持哪些數據庫?
mysql

* Oracle
* MySQL
* mSQL
* PostgreSQL
* Sybase
* MS SQL Server
* IBM DB2
* Interbase
* Sybase
* SQLite
* Lago
* ODBC
* MS Access


3、安裝和配置;
sql

不說廢話了,開始安裝SQL Relay,到 http://sqlrelay.sourceforge.net/ 去下載相應的軟件
安裝SQL Relay須要先安裝Rudiments, 在 http://sqlrelay.sourceforge.net/download.html 能夠找到數據庫


一、安裝Rudiments:
服務器

# tar vxzf rudiments-0.28.2.tar.gz
# cd rudiments-0.28.2
# ./configure --prefix=/usr/local/rudiments
# make
# make install

至此,rudiments安裝結束session


二、安裝SQL Relay:
oracle

# 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,因此才加了這麼多參數的

三、設置PHP:
socket

修改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

請根據我的需求來修改


四、修改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>


4、啓動SQL Relay,並測試;


一、啓動 SQL Relay

# export PATH=$PATH:/usr/local/sqlrelay/bin
# sqlr-start -id msdetest


二、使用SQL工具:

# sqlrsh -id msdetest

能夠直接輸入SQL語句

中止SQL Relay:

# sqlr-stop msdetest


三、測試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 查看評論
相關文章
相關標籤/搜索