doodle-on-web

自分で調べたことや、仕事の中で質問されたことなどをまとめています。

unixODBCでSQLServerに繋ごうとしてつまづいた点

Adaptive Server is unavailable or does not existエラーってどう解決するのかをしらべたのでまとめておきます。

英語のサイトで見つけたのがこれ。

結果的にはSQLServerのポート番号の調査
いや、接続しようとするならポート番号とか分かっとけよーという話なんだが、そうもいかない。
構築も割と他人任せ(外注)だったりする。

聞くよりこうやって調査するほうが早い。
$ tsql -LH ServerName1

そうするとこんな感じに出力されたりする。
$ tsql -LH ServerName1
ServerName ServerName1
InstanceName InstanceName
IsClustered No
Version 13.0.1601.5
tcp 49304

上記内容でまずサーバから接続できるかを確認する。
$ tsql -H ServerName1 -p ポート番号 -U ユーザ名 -P パスワード
-p : 上で調査したtcpの番号を入力する。

1./etc/freetds.confの設定

freetds.confに以下のような設定を追記する。

[ServerName1]
host = IP or DNS
port = port番号(上で調査したtcp番号)
tds version = 7.4
client charset = UTF-8

2./etc/odbc.iniの設定
odbc.iniに以下のような設定を追記する。

[ServerName1]
Servername = ServerName1
Driver = FreeTDS
Database = DatabaseName

3.接続確認
$ isql -v ServerName ユーザ名 パスワード

これで繋がるといいですね!