Linux下FreeTDS使用及問題總結
阿新 • • 發佈:2019-01-24
本人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的話自己試了下不需要這個步驟。
歡迎交流。