首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node-odbc无法连接到mssql

Node-odbc无法连接到mssql
EN

Stack Overflow用户
提问于 2012-07-10 21:24:00
回答 2查看 1.3K关注 0票数 1

我花了一两天的时间在ubuntu12上设置unixODBC和freetds --这本身并不是一个有趣的过程,但它现在可以同时使用sqsh和isql了。我已经安装了node-odbc,并且正在使用github readme中提供的代码片段来测试连接,但是我总是得到

代码语言:javascript
复制
 S1000:1:0:[unixODBC][FreeTDS][SQL Server]Unable to connect to data source
 WARNING: ev_unref is deprecated, use uv_unref
 [Error: Error opening database]

使用isql我运行isql -v SERVER user pass (使用正确的证书)一旦连接了use DATABASE,它就可以正常工作了,我可以很好地运行查询。我在js中的连接字符串是

代码语言:javascript
复制
 "DRIVER={FreeTDS};SERVER=SERVER;UID=user;PWD=pass;DATABASE=DATABASE"

这与用于连接isql的凭据完全匹配,但在Node中我得到了前面提到的错误。你知道为什么会发生这样的事情吗?有没有可能做我的odbc.ini和odbcinst.ini文件的位置或类似的事情?

仅供参考:

/etc/odbc.ini:

代码语言:javascript
复制
[SERVER]
Driver      = FreeTDS
Trace       = No
Server      = SERVER
Port        = 1433
Database    = DATABASE
UsageCount  = 1
TDS_Version = 7.0

/etc/odbcinst.ini:

代码语言:javascript
复制
[FreeTDS]
Description = FreeTDS
Driver = /usr/lib/libtdsodbc.so
Setup = /usr/lib/libtdsS.so
FileUsage   = 1
CPTimeout   = 5
CPReuse     = 20
Threading   = 1

提前感谢您的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-10 22:23:15

看起来我刚刚找到了一个解决方案,尽管我不完全理解为什么。如果使用的连接字符串为:

代码语言:javascript
复制
"DRIVER={FreeTDS};SERVER=SERVER;UID=user;PWD=pass;DATABASE=DATABASE"

然后,由于某些原因,它根本不起作用,我尝试使用设置服务器作为IP和machine...no幸运的实际名称。但是,如果我将连接字符串更改为使用SERVERNAME或DSN (字符串中只能有SERVER、SERVERNAME或DNS中的一个),并且我提供了计算机名称,则它工作正常,无论我如何尝试,都无法使其与IP一起工作。因此,简而言之,适用于我的连接字符串是:

代码语言:javascript
复制
"DRIVER={FreeTDS};SERVERNAME=SERVERNAME;UID=user;PWD=pass;DATABASE=DATABASE"

这个问题的关键似乎在于SQLDriverConnect。

票数 1
EN

Stack Overflow用户

发布于 2012-11-03 02:43:31

今天遇到了这个问题,结果是我需要指定一个端口号作为连接字符串的一部分。仅供参考。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11414302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档