尝试将Ruby连接到SQL服务器时出现"已关闭连接错误"

Ric*_*d77 8 ruby sql-server tiny-tds

这是我用来连接SQL Server 2012 express的代码.我的文件名是Connect.rb.

require "rubygems"
require "tiny_tds"
client = TinyTds::Client.new(
                    :username => 'sa',
                    :password => 'sapassword',
                    :dataserver => 'localhost\SQLEXPRESS',
                    :database => 'ContactsDB')
result = client.execute("SELECT * FROM [Contacts]") 
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,我收到以下错误:

在'execute'中:来自Connect.rb的关闭连接(TinyTds :: Error):在'main'中

当我用以下代码替换上面的代码时,

client = TinyTds::Client.new(
                    :username => 'sa',
                    :password => 'sapassword',
                    :host => 'localhost',
                    :port => 1433,
                    :database => 'ContactsDB')
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

在'connect'中:无法连接:Adaptive Server不可用或不存在

是什么导致了这个错误以及如何修复它?

Dus*_*vis 3

看起来配置没问题。dataserver 是定义非默认实例的正确符号。

确保启用 TCP/IP 和命名管道协议(在 SQL Express 上默认禁用)。还要启用 SQL Server Browser 服务正在运行(默认情况下禁用)。

您可以在开始菜单中的 Microsoft SQL Server/配置工具下的 Sql Server 配置管理器中找到它们。请务必在“客户端协议”和每个列出的实例上启用它们。

此外,请确保您的防火墙允许 SQL 正在侦听的端口上的连接(默认为 1433)。

无需指定端口,因为 Tiny-TDS 默认为 1433。您的第二个代码片段不包含实例。如果您在实例上设置了 SQL Express,则需要使用数据服务器而不是主机,并指定实例名称。