8

odbcisqlはデータ ソースに接続できませんでした:

 $ isql SMS_GTWY username password -v

戻り値:

 [S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source
 [01000][unixODBC][FreeTDS][SQL Server]Unknown host machine name.
 [ISQL]ERROR: Could not SQLConnect

tsqlは大丈夫です:

 $ tsql -S SERVER001 -U username -P password

戻り値:

 locale is "C/UTF-8/C/C/C/C"
 locale charset is "UTF-8"
 using default charset "UTF8"
 1> 

$ cat ~/.freetds.conf:

 [SERVER001]
   host = 192.168.8.101
   port = 1433
   tds version = 8.0
   client charset = UTF8

$ cat ~/.odbc.ini:

  [SMS_GTWY]
  Description = SERVER001 Server
  Driver      = freetds
  Database    = SMS_GTWY
  ServerName  = SERVER001
  TDS_Version = 7.1

$ cat ~/.odbcinst.ini:

  [freetds]
  Description = MS SQL database access with FreeTDS
  Driver      = /usr/local/lib/libtdsodbc.so
  Setup       = /usr/local/lib/libtdsodbc.so
  UsageCount  = 1

freetds自宅でunixODBCインストールされますbrew

CentOS でも同様のセットアップがあり、mssqlserver への odbc isql は正常に動作しています。libtdsS.so顕著な違いがあります。OS X にインストールされていることはわかりません。

# cat /etc/odbcinst.iniCentOS の場合:

 [freetds]
 Description = MS SQL database access with FreeTDS
 Driver      = /usr/lib/libtdsodbc.so
 Setup       = /usr/lib/libtdsS.so 
 UsageCount  = 1

それが問題の原因ですか?

ps の$ odbcinst -j戻り値:

 unixODBC 2.3.1
 DRIVERS............: /usr/local/Cellar/unixodbc/2.3.1/etc/odbcinst.ini
 SYSTEM DATA SOURCES: /usr/local/Cellar/unixodbc/2.3.1/etc/odbc.ini
 FILE DATA SOURCES..: /usr/local/Cellar/unixodbc/2.3.1/etc/ODBCDataSources
 USER DATA SOURCES..: /Users/horace/.odbc.ini
 SQLULEN Size.......: 8
 SQLLEN Size........: 8
 SQLSETPOSIROW Size.: 8

$ odbcinst -q -d戻り値:

 [freetds]

$ odbcinst -q -s戻り値:

 [SMS_GTWY]
4

3 に答える 3

8

isql再インストール後に動作しunixodbcfreetds( --with-unixodbc):

 brew uninstall freetds
 brew uninstall unixodbc

 brew install unixodbc
 brew install freetds --with-unixodbc

今、$ isql -v SMS_GTWY username password戻ります:

+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> 

クレジット: https://gist.github.com/565440

于 2012-12-14T09:24:43.040 に答える
2

Ok。私もこれで 2 日間を無駄にしましたが、Homebrew や MacPorts は使いたくありませんでした。秘訣は、unixODBC スイッチを使用して FreeTDS を構築することです。これにより、他の方法では生成されない odbc ドライバー (xxx.so) が生成されます。開始するには、XCode とコマンド ライン ツールが既にインストールされている必要があります。それを行う方法を示すためのウェブ上のリソースがたくさんあります。

これが私が取ったステップです。

  1. 最新の安定版 FreeTDS をダウンロード
  2. 最新の安定版 unixODBC をダウンロード
  3. 両方を開梱します。
  4. 解凍された unixODBC ディレクトリへのフル パスに注意してください。
  5. ターミナル プロンプトから FreeTDS ディレクトリに移動し、次のコマンドを発行します。

    ./configure --with-unixodbc=手順 4 のパスをメモした
    make
    sudo make install

完了すると、すべてが /usr/local/ にあるはずです。ドライバーは /usr/local/lib にあるはずです。/usr/local/etc の設定ファイルを編集します。お役に立てれば。

于 2013-11-11T18:21:29.197 に答える
0

MacPort を使用する人にとって、上記との唯一の違いは、次の方法で FreeTDS をインストールすることです。

sudo port install freetds +mssql +odbc +universal

ドライバーライブラリは次の場所にあります。

/opt/local/lib/libtdsodbc.so
于 2016-01-03T03:58:46.620 に答える