2

我在 OSX 上设置 Go、FreeTDS 和 unixODBC。我按照https://code.google.com/p/odbc/wiki/InstallingUnixODBCOnOSX上的说明进行操作,当我尝试运行测试时,我得到:

[ODBC Driver Manager] Data source name not found and no default driver specified

该端口同时安装了 unixODBCFreeTDS,那么需要什么来解决这个问题呢?

4

3 回答 3

4

在我看来,最好的方法是使用无DSN 配置— 当您在 ODBC 连接字符串中对连接到服务器实例所需的全部信息进行编码时。这种方法的好处是它需要对客户端机器进行完全零配置,而不是确保FreeTDS ODBC正确安装了驱动程序。

请注意适用FreeTDS于这种设置的两个警告:

  • 您必须使用Port连接字符串键。通常是1433在您连接到 Microsoft® SQL Server™ 时。
  • FreeTDS 有一个非常低的默认TDS 协议版本——比如5.0

    要覆盖它,您必须使用TDS_Version连接字符串键。将其设置为auto或设置为某个合理的值:

    • Microsoft® SQL Server™ 7.0 → 7.0
    • 〃 2000 → 7.1
    • 〃 2005 → 7.2
    • 〃 2008 → 7.3
    • 〃 2012 → 7.4

    看起来 7.2 是目前支持的最大 TDS 协议版本,FreeTDS但实际上 7.2 足以处理典型数据类型,包括varbinary(max).

于 2013-11-11T11:15:11.157 回答
2

在 Linux 中,您使用 odbcinst 注册数据源,但您需要知道 libtdsodbc.so 在哪里

在我的 Mac 上,它被放入

/opt/local/lib/libtdsodbc.so

如果那不是您的安装位置,请执行以下操作以查找其位置:

sudo find / -name "libtdsodbc.so"

然后创建一个名为“tds.driver.template”的文件,其中包含以下内容:

[FreeTDS]
Description = Open source FreeTDS Driver
Driver =/opt/local/lib/libtdsodbc.so

然后运行

sudo odbcinst -i -d -f tds.driver.template
于 2013-11-11T04:39:31.347 回答
0

我遇到了这个问题,我认为解决它的原因是设置ODBCSYSINIODBCINI环境变量(归功于这个答案)。对于 Mac,您需要将它们设置为以下值:

export ODBCSYSINI=/Library/ODBC
export ODBCINI=/Library/ODBC/odbc.ini
于 2021-06-08T19:49:09.953 回答