我在 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,那么需要什么来解决这个问题呢?
我在 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,那么需要什么来解决这个问题呢?
在我看来,最好的方法是使用无DSN 配置— 当您在 ODBC 连接字符串中对连接到服务器实例所需的全部信息进行编码时。这种方法的好处是它需要对客户端机器进行完全零配置,而不是确保FreeTDS
ODBC
正确安装了驱动程序。
请注意适用FreeTDS
于这种设置的两个警告:
在 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
我遇到了这个问题,我认为解决它的原因是设置ODBCSYSINI
和ODBCINI
环境变量(归功于这个答案)。对于 Mac,您需要将它们设置为以下值:
export ODBCSYSINI=/Library/ODBC
export ODBCINI=/Library/ODBC/odbc.ini