capsctrldays

2007-06-12 (火) [長年日記]

[Debian] SQLServer2000への接続

インストール

apt-get install freetds-dev sqsh

設定

vi /etc/freetds/freetds.conf

[MyServer2k] のところを編集。

SQLServerの設定

セキュリティ>ログインから新規ログインを追加。適当な権限を与える。

エンタープライズマネージャでサーバのプロパティを参照後、セキュリティタブの認証を「混合モード」に変更。

接続確認

sqsh -S MyServer2k -U foo -P bar -D db

追記:

VMWare内のDebianからホストWindows機に接続する場合、 freetds.confのhostの設定はゲートウェイ 192.168.xx.1 でいいみたい。

追記2:日付(datetime)のフォーマットがISO形式じゃなくてウキーってなるよ!

freetds.confと同じ場所にlocales.confを用意して、

[default]
date format = %Y-%m-%d %H:%M:%S.%z

と書いてWebサーバを再起動する。

追記3:Debian以外にsqshをインストールする

FreeTDSをインストールしたら/usr/local/lib以下にlibctが入るので、

$export SYBASE=/usr/local
$export LD_LIBRARY_PATH=$SYBASE/lib
$./configure && make && make install

とやる。

追記4:ShiftJISでやりとりしたいときは

freetds.confに

client charset = sjis

追加。

追記5:ShiftJISでやりとりできたと思ったら特定の文字(〜とか)が文字化けるよ!

ShiftJISとかEUC-JPとかでやり取りするのは(普通では)無理なので、 UTF-8を使ってやり取りする。

で、以下の設定に変更。

charset = sjis
client charset = UTF-8

DB側にはShifJISで保存される。ので、拡張Winもイケる。っぽい。たぶん。

追記6:もしかすると

charset = cp932

がいいのかも。

src/tds/encodings.h参照。

追記7:PHPで接続したい場合

apt-get install php5-sybase

しないと、mssql関数が使えないので注意。