我正在尝试从 Ubuntu 计算机访问 Windows 机器上托管的 MS SQL 服务器。我有一个闪亮的应用程序,可以访问 MSSQL,在 Windows 上运行良好。我想在 Ubuntu 上使用闪亮的服务器托管它,以便其他人可以访问该网页并提供他们的 SQL 服务器作为应用程序的输入。
所有这些都在 Windows 上运行良好。现在我无法让 unixODBC 工作。我认为我的 odbc/freeTDS 安装和配置正确。我可以使用 tsql -S 从 Ubuntu 终端连接和查询 SQL 数据库实例。花了一些谷歌搜索,但最终成功了。
现在,当我尝试从 R 连接时,出现此错误。
sql <- odbcConnect("abc.xyz.com", "uname", "passwd")
在 odbcDriverConnect("DSN=abc.xyz.com;UID=uname;PWD=passwd")
:[RODBC] 错误:状态 08001,代码 0,消息
[unixODBC][FreeTDS][SQL Server]无法连接到数据源2:在
odbcDriverConnect("DSN=abc.xyz.com;UID=uname;PWD=passwd")
:[RODBC] 错误:状态 01000,代码 20002,消息
[unixODBC][FreeTDS][SQL Server]Adaptive Server 连接失败3:在
odbcDriverConnect("DSN=abc.xyz.com;UID=uname;PWD=passwd")
:[RODBC] 错误:状态 01000,代码 20017,消息
[unixODBC][FreeTDS][SQL Server]来自服务器的意外 EOF4进
odbcDriverConnect("DSN=abc.xyz.com;UID=uname;PWD=passwd")
: ODBC 连接失败
freeTDS.conf
[abc.xyz.com]
host = abc.xyz.com
port = 49475
tds version = 8.0
odbcinst.ini
[FreeTDS]
Description = FreeTDS unixODBC Driver
Driver = /usr/local/lib/libtdsodbc.so
Setup = /usr/local/lib/libtdsodbc.so
odbc.ini
[abc.xyz.com]
Description = Shiny testing
Driver = FreeTDS
Trace = No
Server = abc.xyz.com\instance_name
Database = dbanme
port = 49475
这个错误“Unexpected EOF from the server”对我来说并不新鲜。当我尝试使用 tsql 连接时,出现了同样的错误。我通过在 freeTDS.conf 中添加“tds version = 8.0”行来克服这个问题。不确定如何让 RODBC 使用此配置。我读过其他用户能够使用 freeTDS 进行 sql-server 的帖子。不确定这里缺少什么。我还尝试重新安装 RODBC。
我修好了这个。 odbc.ini 文件中需要 TDS 版本。
TDS_Version = 8.0
tsql 从 freeTDS.conf 读取版本信息并工作。 isql 失败并出现相同的错误,并且它还在 odbc.ini 中查找此配置。因此,如果您正在配置 R/Python,请使用 isql 进行测试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)