文系プログラマによるTIPSブログ

文系プログラマ脳の私が開発現場で学んだ事やプログラミングのTIPSをまとめています。

【微妙】linuxからコマンドラインでSQLServer2008に接続する【tsql】

一応可能なのです。


f:id:treeapps:20180418131549p:plain

linux(CentOS)からMicrosoftのSQLServer2008に接続する方法が解らなかったので、調べて手順もまとめてみたので公開してみようと思います。

unixODBCをダウンロード
http://www.unixodbc.org/
unixODBC-2.3.2をダウンロード。
解凍したフォルダを /usr/local に配置。

freetdsをダウンロード
http://www.freetds.org/
freetds-0.91をダウンロード。
解凍したフォルダを /usr/local に配置。

unixODBCをコンパイル

cd /usr/local/unixODBC-2.2.14
./configure --enable-gui-no
make
sudo make install

freetdsをコンパイル

cd /usr/local/freetds-0.91
export LD_LIBRARY_PATH=/usr/local/lib
export LD_RUN_PATH=/usr/local/lib
./configure --with-unixodbc=/usr/local --with-msdblib -prefix=/usr/local/freetds
make
sudo make install

接続設定ファイルを編集

cd /usr/local/freetds/etc
sudo vi freetds.conf

以下の内容に書き換え。

[mssql]
host = SQLServerのIP
port = ポート
instance = SQLServer2008
tds version = 8.0
charset = utf8
client charset = utf8

SQLServerに接続

/usr/local/freetds/bin/tsql -S セクション名 -U ユーザ名 -P パスワード -D スキーマ名

雑感
コマンドを実行するにはEnterキー押下だけでは不足していて、「go」と打つ必要があったり、コマンドの履歴が保存されなかったり、MySQLのクライアントと比較して圧倒的に劣ります・・・