在Linux下使用perl通过unixODBC连接SQLServer2000
2011-02-28 17:23
387 查看
在Linux下使用perl通过unixODBC连接SQLServer2000
作者:tonyvicky来自:LinuxSir.Org
摘要:MS从来没有提供过SQLServer for
Linux,所以大家也不要去尝试在Linux系统安装SQLServer,但是可以通过ODBC连接Windows系统的SQLServer数据库;
目录
一、关于测试环境及
Linux连接SQL Server 的说明;
二、下载相关软件
unixODBC、freetds和DBD-ODBC
三、安装和配置;
1、安装unixODBC
2、安装freetds
3、安装DBD-ODBC
4、配置freetds
5、配置unixODBC
6、perl脚本测试能否成功;
四、关于本文
五、相关文档
++++++++++++++++++++++++++++++++++++++++++++ 正 文 ++++++++++++++++++++++++++++++++++++++++++++
一、关于测试环境及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 install
2、安装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.32 port=1433 tds version=8.0
其中的[MyServer2k]代表在客户端使用的服务器名称,host代表SQLServer服务器的IP地址,port代表端口,测试连接;
# bin/tsql -S MyServer2k -H 192.168.0.32 -p 1433 -U sa -P password 1> use gameDB 2> go 1> select count(*) from t_ip 4 1> quit
一切都很顺利
现在来说明以下这些参数的作用,-S MyServer2k是在freetds.conf中定义好的,-H
192.168.0.32服务器IP地址,和freetds.conf中的一致,如果使用了-S参数,这个参数可以不用,-p
1433用来指定端口是1433 ,-U sa用来指定连接数据库的用户名,-P password用来指定连接数据库的密码。
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 ;服务器IP Database = gameDB ;要使用的数据库 Port = 1433 ;端口 Socket = Option = Stmt =
保存并退出,测试ODBC的连接
# bin/isql -v 123 sa password SQL> select count(*) from t_ip +----------+ | | +----------+ | 4 | +----------+ SQL> quit
OK,测试通过,开始测试perl能否正确使用ODBC
在使用perl连接ODBC之前要做些准备工作
把ODBC的共享库都复制到/usr/lib目录
# cp /usr/local/unixODBC/lib/libodbc.* /usr/lib
6、perl脚本测试能否成功;
# vi test.pl
内容如下
#!/usr/bin/perl use 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官方网
站。
相关文章推荐
- 数据库服务器 之 在Linux下使用perl通过unixODBC连接SQLServer2000
- 在Linux下使用perl通过unixODBC连接SQLServer2000
- 在Red hat Linux下通过ODBC连接SQLServer2000
- Linux使用unixODBC连接到Oracle数据库
- 记录:通过xmanger4连接linux使用图形界面
- win10上使用putty通过ssh连接Linux
- 通过dbi使用perl连接mysql数据库的方法
- AWS EC2 通过Linux终端:使用ssh连接到Linux实例
- [转载]通过ssh连接开发板之arm-linux下ssh的安装使用
- socket C/C++编程(11)windows client端使用ip,port,通过connect()连接上linux server
- 通过dbi使用perl连接mysql数据库的方法
- linux下oracle通过unixODBC连接MySQL
- 在mac下使用终端命令通过ssh协议连接远程linux系统,代替windows的putty
- 在Red hat Linux下通过ODBC连接SQLServer2000
- perl通过unixODBC连接SQLServer
- 〖Linux〗通过USB连接,共享Linux上的网络,使用Android手机上网。
- Linux开发环境搭建与使用——通过xshell远程连接ubuntu
- perl通过unixODBC连接SQLServer
- 通过Jedis连接linux中的redis出现的问题
- 使用xshell连接Linux(centos7)安装oracle11g