一 测试环境sql
操做系统: Fedora 8
数据库: SQLServer2000 installed in Windows Xp Professional,数据库
数据库有用户sa,密码是syth7777,数据库文件是QJKZDB服务器
注意: 1 MS历来没有提供过SQLServer for Linux,因此也不要去尝试在Linux系统安装SQLServer,可是能够经过ODBC链接Windows系统的SQLServer数据库;工具
2 安装的SQLServer2000是不会打开1433端口的,因此请Windows Xp 用户在安装完SQLServer以后必定装上SQLServer SP3布丁,可使用命令netstat -a 来查看是否打开1433端口测试
3 对于Windows Xp,缺省防火墙是不让1433端口来通信的,因此必须关掉Windows的防火墙,不然总是链接不成功,但是最可气的是在别的Windows机器使用SQLServer的命令isql可以访问数据库(不用关闭防火墙)。经过抓包工具发现根本就不经过1433端口通信,而是经过445或139内部端口通信呀,真要命呀,看来Windowns东西是好,可是也太霸道了呀!网站
4 在Xp Sp2安装SQLServer2000时必需要打chs_sql2ksp3.exe补丁,若是没有这个补丁,telnet ip 1433会链接不了,固然从远程客户端链接不上,晕呀!ui
Linux系统的ODBC操作系统
unixODBC-2.2.11.tar.gz ( http://www.unixodbc.org )设计
链接SQLServer或Sybase的驱动unix
freetds-stable.tgz ( http://www.freetds.org/ )
二 安装配置(必须在root下用户安装)
一、安装unixODBC
# tar vxzf unixODBC-2.2.11.tar.gz
# cd unixODBC-2.2.11
# ./configure --prefix=/usr/local/unixODBC --enable-gui=no --enable-drivers=no --with-qt-dir=/usr/lib/qt-3.3
# make
# make install
如今的最新版本是2.2.12,我的用的是2.2.11(落伍了),下载地址 http://www.unixodbc.org/unixODBC-2.2.11.tar.gz 。unixODBC图形界面貌似用Qt2.2作得,由于本人电脑里装的Qt3.3.8和Qt4.3.1,这里就不编译gui图形界面了。
二、安装freetds
# tar vxzf freetds-stable.tgz
# cd freetds-0.64
# ./configure --prefix=/usr/local/freetds --with-unixodbc=/usr/local/unixODBC --with-tdsver=8.0
# make
# make install
三、配置freetds # cd /usr/local/freetds
# vi etc/freetds.conf
修改如下的一段,并把;去掉
改好以后的内容: [global]
# TDS protocol version
tds version = 8.0
;[SQLServer2000]
; host = 10.0.0.3
; port = 1433
; tds version = 8.0
; client charset = UTF-8
其中的[SQLServer2000]表明在客户端使用的服务器名称(在tsql命令中要加入 -S SQLServer2000),host表明SQLServer服务器的IP地址,port表明端口.client charset 是客户端使用的字符集, client charset 必需大于或等于服务端数据库使用的字符集。
服务端数据库是 MS SQL Server 2000,字符集是 GB2312。那么client charset 能够设置为 GB2312(等于),GB18030(大于),UTF-8(大于),但不能设为ISO-8859-1(小于), Shift_JIS(不等于).,因为 UTF-8 是所由字符集的超集,所以设置为 UTF-8 老是可行的。此外,FreeTDS的client charset不能设置为 UTF16。这时目前该软件设计的局限,其官方网站称,在将来版本中可能会增长对client charset UTF16的支持。
测试链接:
# /usr/local/freetds/bin/tsql -S 10.0.0.3 -U sa
locale is "zh_CN.UTF-8"
locale charset is "UTF-8"
Password: syth7777
1> quit
#
这说明安装freetds成功
四、配置unixODBC
# cd /usr/local/unixODBC
向ODBC添加SQLServer驱动
# vi etc/odbcinst.ini
写入以下内容: [ODBC]
Trace = Yes
TraceFile = /tmp/sql.log
ForceTrace = Yes
Pooling = No
[SQLServer]
Description = SQLServer
Driver = /usr/local/freetds/lib/libtdsodbc.so
Setup = /usr/local/freetds/lib/libtds.so
UsageCount = 1
CPTimeout = 5
CPReuse = 5
FileUsage = 1
保存退出
添加DSN
# vi etc/odbc.ini
写入以下内容
[QJKZDB]
Driver = SQLServer
Description = SQLServer
Server = 10.0.0.3
Database = QJKZDB
Port = 1433
注意Driver驱动要写odbcinst.ini中的驱动名称,Database是数据库的名称
保存并退出。
测试ODBC的链接
# bin/isql -v QJKZDB sa syth7777
SQL> quit
OK,测试经过