Clo*_*one 8 odbc ruby-on-rails unixodbc ruby-on-rails-3
/local/rvm/gems/ruby-1.9.2-p320/gems/activerecord-sqlserver-adapter-3.2.12/lib/active_record/connection_adapters/sqlserver_adapter.rb:455:in `initialize': IM002 (0) [unixODBC][Driver Manager]Data source name not found, and no default driver specified (ODBC::Error)
Run Code Online (Sandbox Code Playgroud)
我有我的应用程序的工作副本,但突然间我离开了我的系统,这个错误开始浮出水面.谁能告诉你如何解决这个问题?
boh*_*ica 11
由于您没有给我们任何工作,因此您的问题没有明确的答案.
但是,可能的原因是:
在您的用户或系统odbc.ini文件中找不到您指定的DSN运行odbcinst -j以查找这些文件的位置是否有人更改/删除了它们?
您将ODBCINI env var或ODBCSYSINI env var设置为指向odbc.ini和odbcinst.ini文件位置的unixODBC,现在它们未设置(或更改).
有人删除或移动了您的ODBC驱动程序
您通常以用户A的身份运行代码,现在您以用户B的身份运行它,并且您正在使用用户数据源或设置ODBCINI env var.
...可能是其他人,但如果你给了我们更好的信息,我们就不用猜了.
您应该首先设置和配置FreeTDS.以下是我的文件中的示例配置,但我确信其他变体也可以使用.一个区别是我正在使用Django,但下面的结果最终仍然有效,但是使用SQL身份验证比使用Windows身份验证更好.
From /etc/freetds/freetds.conf(如果DNS未对服务器名称激活,则使用服务器的IP).
# A typical Microsoft server
[MyServer]
host = 10.0.0.10\path
port = 1433
tds version = 7.0
Run Code Online (Sandbox Code Playgroud)
从 /etc/odbcinst.ini
[FreeTDS]
Description = FreeTDS
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Run Code Online (Sandbox Code Playgroud)
从 /etc/odbc.ini
[ServerDSN]
Description = "Some Description"
Driver = FreeTDS
ServerName = MyServer
Server = ip_address
Port = 1433
Database = DBNAME
Run Code Online (Sandbox Code Playgroud)
然后这个命令将我连接到数据库.
tsql -S MyServer -U username@servername -P password
| 归档时间: |
|
| 查看次数: |
53514 次 |
| 最近记录: |