Sql server odbc无法连接到OS X上的MSSQL数据源

Sql server odbc无法连接到OS X上的MSSQL数据源,sql-server,macos,odbc,freetds,unixodbc,Sql Server,Macos,Odbc,Freetds,Unixodbc,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 locale is "C/U

odbc
isql
无法连接到数据源:

 $ 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
 locale is "C/UTF-8/C/C/C/C"
 locale charset is "UTF-8"
 using default charset "UTF8"
 1> 
tsql
正常时:

 $ tsql -S SERVER001 -U username -P password
返回:

 [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
 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
  [freetds]
  Description = MS SQL database access with FreeTDS
  Driver      = /usr/local/lib/libtdsodbc.so
  Setup       = /usr/local/lib/libtdsodbc.so
  UsageCount  = 1
$cat~/.odbcinst.ini

  [SMS_GTWY]
  Description = SERVER001 Server
  Driver      = freetds
  Database    = SMS_GTWY
  ServerName  = SERVER001
  TDS_Version = 7.1
  [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上有类似的设置,odbc isql到mssqlserver工作正常。有一个明显的区别,我没有看到
libtdsS.so
安装在OSX上

CentOS上的cat/etc/odbcinst.ini

 [freetds]
 Description = MS SQL database access with FreeTDS
 Driver      = /usr/lib/libtdsodbc.so
 Setup       = /usr/lib/libtdsS.so 
 UsageCount  = 1
这就是问题的原因吗

p、 s.
$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
 [freetds]
 [SMS_GTWY]
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> 
$odbcinst-q-d
返回:

 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
 [freetds]
 [SMS_GTWY]
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> 
$odbcinst-q-s
返回:

 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
 [freetds]
 [SMS_GTWY]
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> 

isql
在重新安装
unixodbc
freetds
——使用unixodbc
)后工作:

现在,
$isql-v SMS\u GTWY用户名密码
返回:

 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
 [freetds]
 [SMS_GTWY]
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> 

信用证:

好的。我也为此浪费了两天时间,但我不想使用自制软件或MacPorts。诀窍是使用unixODBC开关构建FreeTDS。这将生成odbc驱动程序(xxx.so),而不是以其他方式生成。首先,你需要 XCode和命令行工具已经安装。网络上有大量的资源来展示如何做到这一点

以下是我采取的步骤

  • 下载
  • 下载
  • 把两个都打开
  • 请注意解包unixODBC目录的完整路径
  • 从终端提示符导航到FreeTDS目录并发出以下命令

    ./configure——使用步骤4中注释的unixodbc=路径
    制造
    sudo制作安装


  • 完成后,所有内容都应该在/usr/local/中。您的驱动程序应该位于/usr/local/lib中。在/usr/local/etc中编辑您的设置文件。希望这对您有所帮助。

    对于使用MacPort的任何人来说,上面唯一不同的部分是通过以下方式安装FreeTDS:

    sudo port install freetds +mssql +odbc +universal
    
    驱动程序库将位于此处:

    /opt/local/lib/libtdsodbc.so
    

    你真是个天才!在尝试遵循这些有用的说明时,这节省了我的时间非常感谢。我也有这个问题。重新安装