尝试将Ruby连接到SQL Server时出现“Closed connection error”

前端之家收集整理的这篇文章主要介绍了尝试将Ruby连接到SQL Server时出现“Closed connection error”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我用来连接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]")

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

in ‘execute’ :closed connection (TinyTds::Error) from Connect.rb: in
‘main’

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

client = TinyTds::Client.new(
                    :username => 'sa',:host => 'localhost',:port => 1433,:database => 'ContactsDB')

我收到以下错误

in ‘connect’: Unable to connect: Adaptive server is unavailable or
does not exist

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

解决方法

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

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

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

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

无需指定端口,因为Tiny-TDS默认为1433.您的第二个代码段不包含实例.如果在实例上安装了sql Express,则需要使用dataserver,而不是host,并指定实例名称.

猜你在找的Ruby相关文章