You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux服务器下用R的DBI与ODBC连接SQL Server报错求助

解决Linux下R通过ODBC连接SQL Server的"Adaptive Server不可用"错误

问题重现

使用以下R代码连接SQL Server时触发错误:

library(DBI)

con <- dbConnect(
    odbc::odbc(),
    driver = "Sql Server",
    server = "server",
    database = "db_name",
    uid = "uid",
    pwd = "pwd"
)

错误信息:

Error in dbConnect():
! ODBC failed with error 00000 from [FreeTDS][SQL Server].
✖ Unable to connect: Adaptive Server is unavailable or does not exist
• Unable to connect: Adaptive Server is unavailable or does not exist
• Unable to connect to data source
ℹ From nanodbc/nanodbc.cpp:1150.
Run rlang::last_trace() to see where the error occurred.

使用环境:DBI 1.2.3,Linux服务器,/etc/odbcinst.ini配置见问题描述。


排查与解决方案

1. 验证FreeTDS基础连通性

先跳过R层面,用FreeTDS自带的tsql工具测试网络和账号有效性:

tsql -H 你的服务器IP或主机名 -p 1433 -U 你的SQL账号 -P 你的密码
  • 连接失败:说明是网络(防火墙、安全组)、服务器配置(未开启远程连接、TCP/IP)或账号密码错误,优先解决这些基础问题。
  • 连接成功:问题出在ODBC驱动配置或R连接参数上。

2. 修正odbcinst.ini中的Sql Server驱动配置

你的[Sql Server]段使用了带具体版本号的SO文件,易出现链接失效或版本兼容问题,改为和[FreeTDS]段一致的通用软链接,并补充必要参数:

[Sql Server]
Description     = ODBC for SQLSERVER
Driver64        = /usr/lib64/libtdsodbc.so
Setup64         = /usr/lib64/libtdsS.so
Port            = 1433
TDS_Version     = 7.4
FileUsage       = 1
  • TDS_Version=7.4适配SQL Server 2012及以上版本,若你的SQL Server版本更旧,可改为7.2(2008/2008R2)或7.1(2005)。
  • 修改后保存文件,确保权限正确:chmod 644 /etc/odbcinst.ini。

3. 调整R连接参数

  • 明确服务器地址格式:使用IP,端口格式避免解析问题:
    server = "192.168.1.100,1433" # 替换为你的服务器IP和端口
    
    若为命名实例,格式为服务器IP\\实例名。
  • 显式指定TDS版本:如果odbcinst.ini的配置未生效,可在R连接中直接指定:
    con <- dbConnect(
        odbc::odbc(),
        driver = "Sql Server",
        server = "192.168.1.100,1433",
        database = "db_name",
        uid = "uid",
        pwd = "pwd",
        tds_version = "7.4"
    )
    

4. 检查服务器端关键配置

  • 确认SQL Server已启用远程连接(在SQL Server配置管理器中开启)。
  • 确认SQL Server的TCP/IP协议已启用,端口1433在服务器防火墙、云安全组中开放。
  • 确认SQL Server使用混合身份验证模式(若使用SQL账号登录)。

内容的提问来源于stack exchange,提问作者sm925

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 12:45:57