注:これは再投稿です。この質問は、非公開の理由で以前に削除されました
さて、私はこれを一日中のように機能させるように努めてきました、そして私は始めたときからほとんどそれ以上のことはありません。
RubyOnRailsをSQLServerに接続させようとしています。unixODBCをインストールし、それとFreeTDSを構成して、存在するODBCに関連するほぼすべてのRubygemをインストールしました。
(これは、-vを使用したisqlの出力を表示するように更新されました)
[earlz@earlzarch myproject]$ tsql -S AVP1 -U sa -P pass
locale is "en_US.UTF-8"
locale charset is "UTF-8"
1> quit
[earlz@earlzarch ~]$ isql -v AVP1 sa pass
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
[earlz@earlzarch myproject]$ rake db:version
(in /home/earlz/myproject)
rake aborted!
IM002 (0) [unixODBC][Driver Manager]Data source name not found, and no default driver specified
(See full trace by running task with --trace)
ご覧のとおり、tsqlは機能しますが、isqlは機能しません。それを壊す2つの違いは何ですか?
/etc/odbc.ini
[AVP1]
Description = ODBC connection via FreeTDS
Driver = TDS
Servername = my.server
UID = sa
PWD = pass
port = 1232
Database = mydatabase
/etc/odbcinst.ini
[TDS]
Description = v0.6 with protocol v7.0
Driver = /usr/lib/libtdsodbc.so
Setup = /usr/lib/libtdsS.so
CPTimeout =
CPReuse =
FileUsage = 1
.so
(はい、ファイルが存在することを確認しました)
freetds.confの関連部分
[AVP1]
host = my.server
port = 1232
tds version = 8.0
そして最後に、私のdatabase.yml
development:
adapter: sqlserver
mode: odbc
dsn: AVP1
username: sa
password: pass
私がすべての髪を抜く前に誰かが私を助けてくれますか?
完全に最新の64ビットArchLinuxを使用しています。
isqlが失敗する原因は何ですか。私はこの問題についてこれまでに見たすべての解決策を試しましたが、実際にはどれも私のために働いていません。FreeTDSなどを再コンパイルする必要がありますか?
わかりました。また、次の抜粋に示すように、構成ファイルを検出していることをstraceで確認しました。
open("/etc/odbc.ini", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=159, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc71fe09000
read(3, "[AVP1]\n Description = ODBC "..., 4096) = 159