您的位置:首页 > 数据库

windows使用Tiny_tds连接SQLEXPRESS 数据库

2015-11-25 18:24 489 查看
使用tiny_tds连接SQLSERVER 数据库步骤配置非常简单:

1. 安装tiny_tds

gem install tiny_tds -v 0.x.x


注意 tiny_tds 和ruby 版本的对应问题,某些人也许遇到类似问题。目前最新的tiny_tds在readme中提到已经remove掉了对1.9.3的支持,详情不了解。

2. 连接数据库

client = TinyTds::Client.new(:username => 'sa', :password => 'password',:port =>"0" ,:host => '127.0.0.1', :database => 'testdb')
注意此处 port 和host的填写。 对于Client的初始化来说,Opt 一共包含了多个配置项,除了常用的username, password, database,以下几个域会特别提一下:

port: 默认是1433,但是可能自己的sqlserver跟这个port不同!

host: 域名或者是IP地址

dataserver: 如果不提供该项,则默认是 host:port

encoding: 默认utf-8,建议保留默认。

3.使用client执行操作,具体参见tiny_tds github

Trouble Shooting:

1.连接时提示 `connect': Unable to connect: Adaptive Server is unavailable or does not exist

Solution:

1) 确保自己使用的是正确的port号,默认的1433可能并不对。关于如何找到自己的port号,参考Identify SQL Server TCP IP port being used
找到IPALL TCP Dynamic Ports的value填入。或者修改成1433 并重启服务器

2)确保防火墙允许

2.在Linux上使用tsql 命令显示OS error 111,"拒绝连接"

执行: tsql -S 192.168.0.1 -U sa

详细错误提示如下:

Password:

locale is "zh_CN.UTF-8"

locale charset is "UTF-8"

using default charset "UTF-8"

Error 20009 (severity 9):

Unable to connect: Adaptive Server is unavailable or does not exist

OS error 111, "拒绝连接"

There was a problem connecting to the server

解决:

需要在/etc/freetds/freetds.conf中添加配置项:

[MY_DB]

host = 192.168.0.1

port = 52104 #my port is this value.

tds version = 7.0

instance = SQLEXPRESS

#注意 此处 port和instance作用,MSSQL Server不仅仅可以通过port来识别一个instance,也允许通过named instance ,详情参考网址Sqsh / FreeTDS with
SQL2012 using the instance argument 。instance填写xx\SQLEXPRESS 中的 \ 后面的字串。但在我本机的实验中,port 和 instance的作用并不是互斥的(mutually exclusive),两者同时存在且值都是正确的时候,可以连接成功。 猜测可能是作者的失误?(port number maybe is wrong)如果有人实验结果跟我不同,希望可以交流下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: