一 測試環境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,測試經過