当前位置:Linux教程 - Linux资讯 - Linux使用perl通过unixODBC连接SQLServer2000

Linux使用perl通过unixODBC连接SQLServer2000

一、关于测试环境及Linux连接SQL Server 的说明;

测试环境:gcc 3.3.3 , kernel 2.6.5-1 , glibc 2.3.3-27 , perl 5.8.3关于SQL Server说明:

MS从来没有提供过SQLServer for Linux,所以大家也不要去尝试在Linux系统安装SQLServer,但是可以通过ODBC连接Windows系统的SQLServer数据库;

Windows Server 2003用户注意:

在Windows Server 2003系统上安装的SQLServer是不会打开1433端口的,所以请Windows2003用户在安装完SQLServer之后一定装上SQLServer SP3布丁

二、下载相关软件 unixODBC、freetds和DBD-ODBC

首先需要下载3个文件:

Linux系统的ODBC

unixODBC-2.2.8.tar.gz ( http://www.unixodbc.org)

连接SQLServer或Sybase的驱动

freetds-0.62.4.tar.gz ( http://www.freetds.org)

perl的ODBC模块

DBD-ODBC-1.12.tar.gz ( http://cpan.perl.org)

把下载到的三个文件放到同一个目录三、安装和配置;1、安装unixODBC

# tar vxzf unixODBC-2.2.8.tar.gz# cd unixODBC-2.2.8# ./configure --prefix=/usr/local/unixODBC# make# make install2、安装freetds

# tar vxzf freetds-0.62.4.tar.gz# cd freetds-0.62.4# ./configure --prefix=/usr/local/freetds --with-unixodbc=/usr/local/unixODBC --with-tdsver=8.0# make# make install

3、安装DBD-ODBC

在安装之前要先设置一下环境变量 # eXPort ODBCHOME=/usr/local/unixODBC之后开始编译安装 # tar vxzf DBD-ODBC-1.12.tar.gz# cd DBD-ODBC-1.12# perl Makefile.PL# make# make install

所有的软件到现在都安装完成了,接下来就是配置了4、配置freetds

# cd /usr/local/freetds# vi etc/freetds.conf修改以下的一段,并把;去掉改好之后的内容: [MyServer2k]host=192.168.0.32port=1433tds version=8.0

其中的[MyServer2k]代表在客户端使用的服务器名称,host代表SQLServer服务器的IP地址,port代表端口,测试连接;

# bin/tsql -S MyServer2k -H 192.168.0.32 -p 1433 -U sa -P passWord1> use gameDB2> go1> select count(*) from t_ip41> quit一切都很顺利现在来说明以下这些参数的作用,-S MyServer2k是在freetds.conf中定义好的,-H 192.168.0.32服务器IP地址,和freetds.conf中的一致,如果使用了-S参数,这个参数可以不用,-p 1433用来指定端口是1433 ,-U sa用来指定连接数据库的用户名,-P password用来指定连接数据库的密码。


[1] [2] 下一页 

5、配置unixODBC

# cd /usr/local/unixODBC向ODBC添加SQLServer驱动 # vi etc/odbcinst.ini写入如下内容: [TDS] ;驱动名称Description = MS-SQLServer ;描述Driver = /usr/local/freetds/lib/liBTdsodbc.so ;驱动程序Setup = /usr/local/freetds/lib/libtds.so ;不要问我,我也不知道这是什么FileUsage = 1保存退出添加DSN # vi etc/odbc.ini写入如下内容 [123] ;DSN名称Driver = TDS ;ODBC驱动Server = 192.168.0.32 ;服务器IPDatabase = gameDB ;要使用的数据库Port = 1433 ;端口Socket =Option =Stmt =保存并退出,测试ODBC的连接 # bin/isql -v 123 sa passwordSQL> select count(*) from t_ip+----------+ +----------+ 4 +----------+SQL> quit

OK,测试通过,开始测试perl能否正确使用ODBC在使用perl连接ODBC之前要做些准备工作把ODBC的共享库都复制到/usr/lib目录 # cp /usr/local/unixODBC/lib/libodbc.* /usr/lib6、perl脚本测试能否成功;

# vi test.pl内容如下 #!/usr/bin/perluse DBI;$dbh=DBI->connect('dbi:ODBC:123','sa','password');my $sth=$dbh->prepare("select * from t_ip";$sth->execute();while (@data=$sth->fetchrow_array()){print "$data[0] $data[1] $data[2]\n";}保存退出 # perl test.pl如果可以看到数据库中的记录,就说明可以正常使用ODBC perl了。既然已经可以实现perl通过ODBC来连接SQLServer了,那么同样可以使用PHP+ODBC+SQLServer,具体方法请查询PHP官方网站。

(出处:http://www.sheup.com)


上一页 [1] [2] 

(出处:http://www.sheup.com)


上一页 [1] [2] [3]