最近要在linux下用c++連線windows下的sql server 2005,所以只好用freetds了
環境: 系統ubuntu9.04 kernel 2.6.28 gcc 4.3.3 freetds 0.91
參考文件:在網上查了些資料,但主要還是參考官網上的使用者手冊
xgy@ubuntu:~/tmp$ tar xvf freetds-0.91.tar.gz
xgy@ubuntu:~/tmp$ cd freetds-0.91/
xgy@ubuntu:~/tmp/freetds-0.91$ ./configure --prefix=/usr/local/freetds0.91 --enable-msdblib --with-tdsver=7.1
--prefix=/usr/local/freetds0.91 :freetds將被安裝在/usr/local/freetds0.91目錄下
--enable-msdblib :為是允許microsoft資料庫函式庫
--with-tdsver=7.1 這個是指定tds的協議版本,如果不指定只安裝的是tds5.0版的,網上有好多資料這裡寫的是8.0其實tds最高的是7.2版的,之後就沒再更新了,所以如果寫的是8.0,那麼安裝的也是5.0版的,另外tds有7.2版的,但在這裡最高卻只能寫到7.1,如果寫的是7.2,那麼安裝的也還是5.0版的,這個可以用./configure --help,輸出後可以看到這樣的一行:--with-tdsver=version tds protocol version (4.2/4.6/5.0/7.0/7.1)[5.0]
更詳細的的配置情況請參考:config.htm
另外說明下:在安裝freetds之前我沒有安裝odbc驅動管理器,也沒有安裝odbc驅動。
接下來就是編譯、安裝:
xgy@ubuntu:~/tmp/freetds-0.91$ make
root@ubuntu:/home/xgy/tmp/freetds-0.91# make install //注意這裡是以root使用者執行的。
接下來對一些環境變數進行配置
export path=$path:/usr/local/freetds0.91/bin
export ld_library_path=$ld_library_path:/usr/local/freetds0.91/lib
然後執行:source .bashrc //這個是使剛才的設定生效
對於ld_library_path環境變數的配置也可以換成配置檔案:/etc/ld.so.conf,這個檔案的最後一行加上:/usr/local/freetds0.91/lib
如果改的是/etc/ld.so.conf檔案,那麼就在root使用者下執行:ldconfig,使剛才的配置立即生效。
對於這兩個變數的配置如果還有啥疑問,那最好是好好看下這篇文章:這個會讓你對linux下的一些路徑問題有比較深的理解
網上有資料說還需要配置freetds變數,我做過測試,可以不用配置這個變數的。
現在可以看下你安裝的情況,執行:tsql -c 輸出如下圖:
從上圖可以看到freetds的版本為0.91,freetds.conf配置檔案在/usr/local/freetds0.91/etc目錄下,tds的版本為7.1!! 當我開始configure時--with-tdsver選的8.0、7.2這裡輸出的tdsversion的值是5.0,用這個配置與windows下的sqlserver2005連線時執行命令:
xgy@ubuntu:~$ tsql -h 192.168.13.153 -p1433 -u sa -p 123456 //出現如下圖錯誤:
choosingtdsprotocol.htm#tab.protocol.by.product
confirminstall.htm#e.g.badname
接下來對freetds.conf檔案進行配置,這個可以參考:freetdsconf.htm#tab.freetds.conf
在這個檔案的最後加上如下內容:
[seamus-pc]
host = 192.168.13.153 //sqlserver機器名字或者ip位址
port = 1433
tds version = 7.1
說明:[seamus-pc] 這個括號裡的內容可以隨便寫。
接下來就是測試連線了,執行的命令為:xgy@ubuntu:~$ tsql -h192.168.13.153 -p 1433 -u sa -p 123456
首先執行ping命令,確保兩個系統能過通訊,如果linux是裝在虛擬機器中的,那網絡卡需要要配成nat模式(兩個系統在同一臺主機上)、或者橋接模式(linux、windows位於兩台主機上)
如果sql server2005服務沒有啟動,則有可能出現如下錯誤:
另外還要記得啟用伺服器的tcp/ip協議:開始->開始->microsoft sql server2005->配置工具->sql server配置管理器 出現如下圖:
啟用tcp/ip協議後重啟服務即可。
下面這張是我沒有啟用tcp/ip協議同時tds的版本為5.0時執行
xgy@ubuntu:~$tsql -h 192.168.13.153 -p 1433 -u sa -p 123456 出現的錯誤:
如果連線成功則會出現乙個提示符:>,然後可以輸入sql語句,下面這個是我執行的情況:
student是我資料庫pctest(預設資料庫)中的一張表
到此,freetds在linux下安裝、並與windows下的sql server2005連線成功!!
Linux下tengine nginx的安裝配置
linux下nginx tengine的安裝配置 本部落格使用tengine,nginx安裝步驟基本一致 簡介 tengine是由 網發起的web伺服器專案。它在nginx的基礎上,針對大訪問量 的需求,新增了很多高階功能和特性。tengine的效能和穩定性已經在大型的 如 網,天貓 等得到了很好的...
Linux環境下MySQL python安裝過程
參考 1.首先確認python的版本為2.3.4以上,如果不是需要公升級python的版本 python v 檢查python版本 2.安裝mysql,比如安裝在 usr local mysql目錄下 4.安裝 mysql python tar xvzf mysql python 1.2.2.tar...
Linux環境下MySQL python安裝過程
參考 1.首先確認python的版本為2.3.4以上,如果不是需要公升級python的版本 python v 檢查python版本 2.安裝mysql,比如安裝在 usr local mysql目錄下 4.安裝 mysql python tar xvzf mysql python 1.2.2.tar...