【问题标题】:unixodbc and freetds setup on OSX and Rails 2.3.xOSX 和 Rails 2.3.x 上的 unixodbc 和 freetds 设置
【发布时间】:2012-04-13 03:03:27
【问题描述】:

我正在尝试在 OSX (10.7.3) 上设置 unixodbc,但看起来 iODBC 即将推出。

我的配置/database.yml:

development:
  adapter: sqlserver
  encoding: UTF8
  mode: odbc
  username: user
  password: passwd
  dsn: MY_DSN

ruby-obdc 已安装并在 Gemfile 中:

gem 'ruby-odbc', :require => 'odbc_utf8'

/usr/local/etc/freetds.conf:

[MY_SERVER]
host = host.bla.com
port = 1433
tds version = 8.0
client charset = UTF-8

/usr/local/etc/odbc.ini

[MY_DSN]
Driver=/usr/local/lib/libtdsodbc.so
Description=Sql Server Local
Servername=MY_SERVER
Port=1433
Database=my_database

当我运行script/console 并尝试访问任何模型时:

产品 ODBC::Error: IM002 (0) [iODBC][Driver Manager]未找到数据源名称并且未指定默认驱动程序。无法加载驱动程序

当我想使用 unixodbc 时,似乎正在使用 iODBC 连接到数据库。如何让我的 rails 应用使用 unixodbc 而不是 iODBC?

【问题讨论】:

    标签: ruby-on-rails sql-server macos unixodbc iodbc


    【解决方案1】:

    通过针对 Homebrew 库编译 ruby​​-odbc 解决。如果您使用的是 OSX,则此方法有效:

    gem install ruby-odbc -- --with-odbc-lib=/usr/local/lib
    

    【讨论】:

    • 你能说得更具体点吗?我遇到了这个问题,这并没有完全给出一步一步的解决方案。谢谢
    • 您运行的是什么操作系统?我使用 Brew 安装了 unixodbc,然后在 OSX 上使用它链接它。
    • 这是我在 mac os x 上的 ruby​​,我发布了该问题的解决方案。
    【解决方案2】:

    iODBC,由my employer 维护和支持,自 Jaguar (10.2.x) 以来已作为 Mac OS X 的一部分提供。

    您最好使用updating iODBC with all the latest patches(Apple 在这些方面往往有点落后),而不是转向 UnixODBC。您还可以在我们发布的 Ruby+ODBCRuby-on-Rails 文档中找到一些好处。

    最后,最好将所有 ODBC 配置保存在 Mac OS X 的默认文件位置 --

    /Library/ODBC/odbc.ini
    /Library/ODBC/odbcinst.ini
    /Users/*/Library/ODBC/odbc.ini
    /Users/*/Library/ODBC/odbcinst.ini
    

    您可以从您可能希望拥有这些文件的任何其他位置创建符号链接,例如--

    ln -s ~/Library/ODBC/odbc.ini ~/.odbc.ini
    

    【讨论】:

    • 感谢您的提示,但不幸的是我不再需要使用 odbc。不过,我希望对 unixodbc 有问题的人可以使用您的帖子来解决他们的问题。 :)
    【解决方案3】:

    使用自制软件。需要使用:

    gem install ruby-odbc -- --with-odbc-dir=/usr/local/Cellar/unixodbc/2.3.2
    

    我之前没有注意到这一点,但在佩德罗的回答中,他有with-odbc-lib。不确定这是否适用于他的环境,但我需要将其设为 dir,因为我一直在检查 sql.h... 没有错误。

    【讨论】:

      猜你喜欢
      • 2019-12-20
      • 2012-09-09
      • 1970-01-01
      • 1970-01-01
      • 2011-02-24
      • 2013-05-31
      • 1970-01-01
      • 2018-01-30
      • 1970-01-01
      相关资源
      最近更新 更多