我已经设置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
有没有人知道可能导致这种情况的原因?
答案 0 :(得分:11)
我想我明白了,它是TDS配置的版本,我有5.0,导致错误
尝试运行tsql -C
以检查您使用的是哪个版本,然后您可以调用tsql
覆盖版本:
TDSVER=7.0 tsql -H hostname -p port -U domain\\\username -P password
它有效!
答案 1 :(得分:9)
为了制作这个permenant我发现我需要编辑freetds.conf
文件并在那里全局设置
vim /usr/local/freetds/etc/freetds.conf
tds version = 8.0
正在运行tsql -C
仍然显示该版本为5.0,但现在每次都在连接。
答案 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
答案 3 :(得分:2)
libtdsodbc.so
/usr/lib/odbc
(对我来说){/ 1}}上也缺少符号链接
sudo ln /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so libtdsodbc.so
应该帮助
答案 4 :(得分:0)
我遇到了同样的问题。在我的情况下,Microsoft SQL Server数据库的用户名格式为DOMAIN\userid
。但是,当我在命令行输入它时,我认为它将斜杠解释为转义字符。当我尝试将斜线放在另一个方向时,它仍然失败了。最后,我尝试在原始方向上放两个斜线并且它起作用。因此以下对我有用:
tsql -S myhost -U DOMAIN\\userid
答案 5 :(得分:0)
我遇到了同样的错误。然后我执行了以下操作,错误消失了:
pip install pyodbc