2015年9月23日 星期三

利用 FreeTDS 連接 MSSQL

利用 FreeTDS 連接 MSSQL

Linux 的好用方便迅速大家都知道,但是總有些時候對方會跟你說,什麼Linux啊,不是都滑鼠點幾下就好了嗎? 偏偏這時候你要的資料又在對方的機器上,想說不都很難。 只好研究起怎麼利用 Linux 底下的工具來查詢 MSSQL 的資料了。

[more]

要在 Linux 底下連接 MSSQL 需要安裝一些元件,分別是 freetds, unixodbc,我在 ubuntu 跟 CentOS 底下都有找到,應該是沒什麼問題。

安裝完兩個套件之後需要做一點設定讓 freetds 知道怎麼溝通還有去哪裡查資料。

/etc/freetds.conf

[ALIAS_MACHINE_NAME]
    host = MACHINE_NAME_OR_IP
    port = 1433
    tds version = 7.3
    #http://www.freetds.org/userguide/choosingtdsprotocol.htm

/etc/odbc.ini

[ALIAS_MACHINE_NAME]
Driver      = FreeTDS
Description = ODBC connection via FreeTDS
Trace       = No

/etc/odbcinst.ini

[FreeTDS]
Description = MS SQL database access with Free TDS
Driver64    = /usr/lib64/libtdsodbc.so
Setup64     = /usr/lib64/libtdsS.so
FileUsage   = 1

設定完之後就可以在命令列下指令查詢囉

tsql -S ALIAS_MACHINE_NAME -U USERNAME -P PASSWORD

下完之後看有沒有進去,命令列應該會變成像是這樣

1>

比較特別要注意的是,利用這個模式下查詢的話,最後一行要打 go 才會真的去跑,平常 IDE 用太久它會自動幫忙下,卡在這邊卡好久。

他也可以配合 python 來做一些處理,只要用 pip 裝 pymssql 就可以了,至於用法在這邊就不贅述,上面有設定好的話應該都沒有什麼問題才是。