web-dev-qa-db-ja.com

[S1000] [unixODBC] [FreeTDS] [SQLServer]データソースに接続できません

私はこの質問が何度も聞かれることを知っています、そして私はすべてを試しましたが、何もうまくいきませんでした。 Ubuntu14.04とは別のサーバー上のMSSQLデータベースに接続しようとしています。

/etc/odbcinst.inのコンテンツ

 [ODBC]
 Trace = No
 TraceFile = /tmp/odbc.log

 [FreeTDS]
 Description = FreeTDS
 Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
 Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
 UsageCount = 1
 fileusage=1
 dontdlclose=1

/etc/odbc.inのコンテンツ

 [mssql]
 Driver = FreeTDS
 ServerName = mssql
 Port = 1433
 Database = My Database //database has space
 Driver=/usr/local/lib/libtdsodbc.so
 UsageCount = 1
 TDS_Version = 7.3
  instance = SQLEXPRESS

[Default]
Driver=/usr/local/lib/libtdsodbc.so

そして/etc/freetds/freetds.confのmssqlセクション

[mssql]

 Host = server ip
 port = 1433
  database = My Databas
 instance = SQLEXPRESS

  tds version = 7.3
  client charset = UTF-8

次のコマンドを実行すると、増加する数値が生成されます

  tsql -S mssql -U username -P password

しかし、私が走るとき

  isql -v mssql username password

ほぼ30セクション後に戻ります

[S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source
[08S01][unixODBC][FreeTDS][SQL Server]Unable to connect: Adaptive Server is unavailable or does not exist
[ISQL]ERROR: Could not SQLConnect

net.c:205:FAILED 54.214.30.231ポート1433(TDSバージョン4.2)への接続

Tsql -Cで確認すると、マシンにインストールされているTDSバージョン4.2が表示されますが、confファイルで7.3を指定しました。それが理由ですか?もしそうなら、どうすればバージョンをアップグレードできますか?それが理由ではない場合、誰かが私が間違っていることを私に知らせてもらえますか?

11
Awais Qarni

Odbc構成ファイルに文字iがないようです。 odbc.in aodbc.iniの代わりになります

isqlman ページから:

isql、iusql —unixODBCコマンドラインインタラクティブSQLツール概要

isql DSN [ユーザー[パスワード]] [オプション]説明

isqlは、ユーザーがSQLをバッチまたはインタラクティブに実行できるようにするコマンドラインツールです。 HTMLテーブルにラップされた出力を生成するオプションなど、いくつかの興味深いオプションがあります。

iusqlは、Unicodeサポートが組み込まれた同じツールです。引数

DSN

  • データベースへの接続に使用する必要があるデータソース名。データソースは、/ etc/odbc.iniファイルと$ HOME/.odbc.iniファイルの順に検索されます。 、後者が前者を上書きします。

  • USER接続を確立するデータベースのユーザー/ロールを指定します。

  • 指定されたユーザーのパスワードパスワード。

/etc/odbcinst.inについても同じことが言えます。 /etc/odbcinst.iniである必要があります

コメントに基づいて編集

あなたの場合のエイドリアンは、このエラー番号がOPとは異なるため、新しい質問を作成する方がよいと思います。

エラーメッセージ:[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified [ISQL]ERROR: Could not SQLConnect.

エラーメッセージに基づいて、Server=ip_addressオプションをodbc.iniに追加する必要があります(説明も追加することをお勧めします)。角かっこ[mssql]内の名前はServerDSNでなければならないことを忘れないでください。 TDS_Version = 7.3で指定された正しいTDSバージョンがあることを確認しますか? /etc/odbcinst.iniではDriverディレクティブで十分です。なぜ2つの異なるドライバーがあるのですか?Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.soDriver=/usr/local/lib/libtdsodbc.soは2番目の唯一のシンボリックリンクですか?

これで、構成は次のようになります(構成が表示されなかったため、推測する必要があります)。

[mssql]
Description = "My MSSQL DB for data science"
Driver = FreeTDS
ServerName = mssql
Server = <ip_address>
Port = 1433
Database = My Database //database has space
UsageCount = 1
TDS_Version = 7.3
instance = <my_mssql_instance>
2
tukan