私はこの質問が何度も聞かれることを知っています、そして私はすべてを試しましたが、何もうまくいきませんでした。 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を指定しました。それが理由ですか?もしそうなら、どうすればバージョンをアップグレードできますか?それが理由ではない場合、誰かが私が間違っていることを私に知らせてもらえますか?
Odbc構成ファイルに文字iがないようです。 odbc.in
aodbc.ini
の代わりになります
isql
man ページから:
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.so
とDriver=/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>