2011-09-26 22 views
5

我試圖將Redhat Linux連接到Microsoft SQL Server 2008.我已經在Windows(我的測試機器)上設置了它,但現在我需要將它部署到Linux機器將在哪裏生產。將Redhat連接到Ruby on Rails的SQL Server 2008

所以我已經安裝了unixODBC和freetds的(用了很大的力氣,甚至不知道這是否是正確安裝:S),而該結果是,我在/usr/local/etc 3個文件:

odbc.ini 
odbcinst.ini 
freetds.conf 

然後我編輯的freetds.conf文件,這是我補充說:

[sqlServer] 
host = servername 
port = 4113 
instance = sqlServer 
tds version = 8.0 
client charset = UTF-8 

我不得不從我的DBA找出端口號,它被設置爲動態SQL Server 2008中

odbcinst.ini文件看起來像這樣:

[FreeTDS] 
Description  = TDS driver (Sybase/MS SQL) 
Driver   = /usr/local/lib/libtdsodbc.so 
Setup   = /usr/local/lib/libtdsS.so 
CPTimeout  = 
CPReuse   = 
FileUsage  = 1 

和我odbc.ini文件看起來是這樣的:

[sqlServer] 
Driver = FreeTDS 
Description  = ODBC connection via FreeTDS 
Trace   = 1 
Servername  = sqlServer 
Database  = RubyApp 

所以現在我想連接,看是否有使用

tsql -S sqlServer -U test -P test任何連接, 但是,只給了我以下錯誤:

locale is "en_US.UTF-8" 
locale charset is "UTF-8" 
using default charset "UTF-8" 
Error 20013 (severity 2): 
     Unknown host machine name. 
There was a problem connecting to the server 

當我試圖使用isql,做isql -v sqlServer test test,那吐出以下錯誤:

[S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source 
[01000][unixODBC][FreeTDS][SQL Server]Unknown host machine name. 
[ISQL]ERROR: Could not SQLConnect 

任何想法我可能做錯了什麼?

回答

0

你會不會需要在freetds.conf文件中的SQL Server的主機名或IP地址 -

[sqlServer] 
host = 192.168.0.99 
: 
+0

是的,我確實需要它,只是爲了安全起見,我寫了'servername',而不是真實的服務器名 – omarArroum

1

如果您不能TSQL連接,再有就是與您的SQL服務器或連接問題freetds.conf

首先確認端口和命名實例使用tsql -LH [SQL server IP]

# tsql -LH 127.0.0.1 
    ServerName HOME 
InstanceName INSTANCE1 
IsClustered No 
    Version 10.50.2500.0 
     tcp 1434 

如果這也不行,有你的服務器和SQL服務器之間的連接問題。

如果確實有效,請將您的端口設置爲tcp以上freetds.conf

[TDS] 
host = 127.0.0.1 
port = 1434 
tds version = 7.0 

實例被設置在odbc.ini

[MSSQLExample] 
Description = Example server 
Driver = FreeTDS 
Trace = No 
Server = 127.0.0.1\INSTANCE1 
Database = MyDatabase 
port = 1434 

如果這些方法都失敗,請嘗試使用osql得到一些反饋,這部分不能正常工作。

# osql -S MSSQLExample -U USERNAME -P PASSWORD 

以及有關TSQL錯誤消息的一些好的信息:http://freetds.schemamania.org/userguide/confirminstall.htm

+1

這一個:服務器= 127.0 .0.1 \ INSTANCE1 保存我的培根! – DerStoffel