1. 程式人生 > >Linux下FreeTDS使用及問題總結

Linux下FreeTDS使用及問題總結

本人Linux版本: RHEL5.8 (32位)

原始碼安裝包(設計開發使用Freetds建議選擇原始碼編譯、安裝生成與自己系統適配的相關庫檔案):Freetds原始碼安裝包地址

主要說下個人使用的時候遇到的幾個問題

1、連線失敗

<span style="font-family:Times New Roman;font-size:14px;">錯誤提示:
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
Error 20017 (severity 9):
        Unexpected EOF from the server
        OS error 115, "Operation now in progress"
Error 20002 (severity 9):
        Adaptive Server connection failed</span>

如果確定SQLServer資料庫是開著的,網路是暢通的,而出現這個的原因建議修改Freetds版本。

鍵入:tsql -C

 

如上, 配置檔案路徑為在 /usr/local/etc/freetds.conf ,儘管你的 /etc/下面可能也有這個配置檔案,但卻不是預設讀取的配置,改了也不生效。

修改全部配置[global]節點下:

tds version= 7.0 或者 7.1 8.0 ,總之為了提高下使用的版本

再次嘗試連線:tsql -H 資料庫主機IP  -U 使用者名稱 -P 密碼 -p 埠 

2、編碼問題

本人是用Linux C 程式設計,寫入資料庫時發現中文亂碼,個人程式碼用UTF-8或者GBK都編譯試了下,沒有效果。

一般是由於SQLServer 預設使用GBK之類的中文編碼,修改配置檔案,在全域性配置中設定編碼

client charset= GBK 

問題解決。用php編碼的同學有反應說需要編碼時候用iconv函式進行轉碼,Linux C的話自己試了下不需要這個步驟。

歡迎交流。