连接到Mac上的SQL Server的FreeTDS问题(来自服务器的意外EOF)

gug*_*son 8 sql-server freetds ruby-on-rails-3

我已经设置FreeTDS连接到SQL Server数据库.当我尝试在Mac(Lion)上的终端中打开TSQL时出现此错误:

locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
Error 20017 (severity 9):
    Unexpected EOF from the server
    OS error 36, "Operation now in progress"
Error 20002 (severity 9):
    Adaptive Server connection failed
There was a problem connecting to the server
Run Code Online (Sandbox Code Playgroud)

有没有人知道可能导致这种情况的原因?

gab*_*ouy 11

我想我得到了它,它是TDS配置版本,我有5.0,这导致了错误

尝试运行tsql -C以检查您使用的是哪个版本,然后您可以调用tsql覆盖版本:

TDSVER=7.0 tsql -H hostname -p port -U domain\\\username -P password

它工作了!


小智 9

为了使这个永久化,我发现我需要编辑freetds.conf文件并在那里全局设置它

vim /usr/local/freetds/etc/freetds.conf
Run Code Online (Sandbox Code Playgroud)

tds version = 8.0

运行tsql -C仍然显示版本是5.0但连接现在每次都工作.

  • 在我的例子中,该文件位于`/ etc/freetds/freetds.conf`中. (2认同)

小智 8

TDS版本需要匹配正确的tds协议才能连接到您的数据库服务器,请参阅下文 -

http://www.freetds.org/userguide/choosingtdsprotocol.htm

选择TDS协议版本

***DB SERVER        |    TDS VERSION ***    
Microsoft SQL Server 6.x    = 4.2       
Sybase System 10 and above  = 5.0       
Sybase System SQL Anywhere  = 5.0     
Microsoft SQL Server 7.0    = 7.0       
Microsoft SQL Server 2000   = 7.1       
Microsoft SQL Server 2005   = 7.2   
Microsoft SQL Server 2008   = 7.2 
Run Code Online (Sandbox Code Playgroud)