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

Ruby使用TinyTds连接远程SQL Server 2014报错求助

解决Ruby tiny_tds连接远程SQL Server 2014失败问题

以下是针对你遇到的连接问题的排查和解决步骤:

1. 匹配SQL Server 2014对应的TDS版本

SQL Server 2014适配的TDS版本是7.2,而你的freetds编译默认使用7.3,版本不匹配可能导致兼容性问题。可以通过两种方式修正:

  • 代码中显式指定TDS版本:
require 'tiny_tds'
client = TinyTds::Client.new(host: '172.xx.0.xxx',
                             database: 'XXXXxxxxxTEST',
                             username: 'sa',
                             password: 'Xnforxxxx',
                             tds_version: '7.2')

results = client.execute("SELECT * FROM XXX_ProcessOrder")
  • 修改freetds.conf配置文件:
    在/usr/local/etc/freetds.conf中添加目标服务器的配置条目:
[remote-sql-2014]
    host = 172.xx.0.xxx
    port = 1433
    tds version = 7.2

之后代码中改用dataserver参数调用:

client = TinyTds::Client.new(dataserver: 'remote-sql-2014',
                             database: 'XXXXxxxxxTEST',
                             username: 'sa',
                             password: 'Xnforxxxx')

2. 显式指定SQL Server端口

UI客户端可能默认使用1433端口,但远程服务器可能修改了端口,或网络存在端口映射问题。在连接参数中添加端口:

client = TinyTds::Client.new(host: '172.xx.0.xxx',
                             port: 1433, # 替换为实际端口
                             database: 'XXXXxxxxxTEST',
                             username: 'sa',
                             password: 'Xnforxxxx',
                             tds_version: '7.2')

3. 用tsql命令验证freetds底层连通性

先跳过tiny_tds,直接用freetds自带的tsql工具测试远程连接,确认问题是否出在freetds层面:

tsql -H 172.xx.0.xxx -p 1433 -U sa -P Xnforxxxx -D XXXXXxxxxxTEST

如果该命令也无法连接,需排查:

  • 远程服务器防火墙是否允许你的本地IP访问SQL Server端口
  • 远程SQL Server是否开启了TCP/IP协议(通过SQL Server配置管理器确认)
  • sa账号是否被允许远程登录(在SQL Server管理工具中查看账号属性)

4. 禁用MARS(多活动结果集)

你的freetds编译时开启了MARS,但SQL Server 2014对MARS的兼容性可能存在问题。尝试在连接参数中关闭MARS:

client = TinyTds::Client.new(host: '172.xx.0.xxx',
                             database: 'XXXXxxxxxTEST',
                             username: 'sa',
                             password: 'Xnforxxxx',
                             tds_version: '7.2',
                             mars: false)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 07:53:16