ODBC驱动程序管理器:未找到数据源名称且未指定默认驱动程序

时间:2013-11-11 04:39:31

标签: macos macports freetds unixodbc

我在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

该端口安装unixODBC FreeTDS,那么解决此问题需要什么?

3 个答案:

答案 0 :(得分:4)

在我看来,最好的方法是使用DSN-less configuration - 编码连接到ODBC连接字符串中的服务器实例所需的完整信息。这种方法的优点是它需要客户端计算机的零配置,而不是确保正确安装FreeTDS ODBC驱动程序。

请注意在此类设置中适用于FreeTDS的两个注意事项:

  • 您必须使用Port连接字符串键。如果您要连接到Microsoft®SQLServer™,通常为1433
  • FreeTDS有一个极低的默认TDS protocol版本 - 类似于5.0

    要覆盖此选项,您必须使用TDS_Version连接字符串键。要么将其设置为auto,要么设置为合理的值:

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

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

答案 1 :(得分: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

答案 2 :(得分:0)

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

export ODBCSYSINI=/Library/ODBC
export ODBCINI=/Library/ODBC/odbc.ini