当前位置:操作系统 > Unix/Linux >>

sqlrelay安装手记

摘要:FreeTDS: 是在Linux系统中连接SQL Server的程序,本文不介绍此软件的安装方法,我们主要介绍SQL Relay的配置和应用;

  一、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.203port =1433tds version = 8.0client 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>

  ";

  }sqlrcur_free($cur);sqlrcon_free($con);?>


  

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

  全文结束~~

  Good Luck!!!

  五、关于本文
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,