Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server odbc节点无法连接到mssql_Sql Server_Node.js_Unixodbc - Fatal编程技术网

Sql server odbc节点无法连接到mssql

Sql server odbc节点无法连接到mssql,sql-server,node.js,unixodbc,Sql Server,Node.js,Unixodbc,我花了一两天的时间在Ubuntu12上设置了unixODBC和freetds——这本身并不是一个有趣的过程,但现在它可以同时使用sqsh和isql。我已经安装了odbc节点,并且正在使用中提供的代码段来测试连接,但是我总是得到 S1000:1:0:[unixODBC][FreeTDS][SQL Server]Unable to connect to data source WARNING: ev_unref is deprecated, use uv_unref [Error: Error

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

 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服务器用户通行证
(使用正确的凭据…),然后
使用数据库
,连接后一切正常,我可以很好地运行查询。我在js中的连接字符串是

 "DRIVER={FreeTDS};SERVER=SERVER;UID=user;PWD=pass;DATABASE=DATABASE"
它与用于连接isql的凭据完全匹配,但在节点中,我得到了上述错误。你知道为什么会这样吗?是否有可能对odbc.ini和odbcinst.ini文件或类似文件进行定位

仅供参考:

/etc/odbc.ini:

[SERVER]
Driver      = FreeTDS
Trace       = No
Server      = SERVER
Port        = 1433
Database    = DATABASE
UsageCount  = 1
TDS_Version = 7.0
/etc/odbcinst.ini:

[FreeTDS]
Description = FreeTDS
Driver = /usr/lib/libtdsodbc.so
Setup = /usr/lib/libtdsS.so
FileUsage   = 1
CPTimeout   = 5
CPReuse     = 20
Threading   = 1

提前感谢您的帮助

看起来我刚刚找到了解决这个问题的方法,尽管我不完全明白为什么。如果使用的连接字符串是:

"DRIVER={FreeTDS};SERVER=SERVER;UID=user;PWD=pass;DATABASE=DATABASE"
然后,由于某种原因,它根本不起作用,我尝试使用设置服务器作为IP和机器的实际名称…没有运气。但是,如果我将连接字符串更改为使用SERVERNAME或DSN(字符串中只能有SERVER、SERVERNAME或DNS中的一个),并且我提供了机器名,那么它工作正常,无论我如何尝试,我都无法让它与IP一起工作。总之,对我有效的连接字符串是:

"DRIVER={FreeTDS};SERVERNAME=SERVERNAME;UID=user;PWD=pass;DATABASE=DATABASE"

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

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

"DRIVER={FreeTDS};SERVER=SERVER;UID=user;PWD=pass;DATABASE=DATABASE"
然后,由于某种原因,它根本不起作用,我尝试使用设置服务器作为IP和机器的实际名称…没有运气。但是,如果我将连接字符串更改为使用SERVERNAME或DSN(字符串中只能有SERVER、SERVERNAME或DNS中的一个),并且我提供了机器名,那么它工作正常,无论我如何尝试,我都无法让它与IP一起工作。总之,对我有效的连接字符串是:

"DRIVER={FreeTDS};SERVERNAME=SERVERNAME;UID=user;PWD=pass;DATABASE=DATABASE"

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

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

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

我们也有同样的问题。我们的解决方案也是一样的。配置FreeTDS并使用SERVERNAME而不是SERVER。。。这现在要求我们分发和维护配置文件,而不仅仅是一个连接字符串:(我们有同样的问题。我们的解决方案也是一样的。配置FreeTDS并使用SERVERNAME而不是SERVER…这现在要求我们分发和维护配置文件,而不仅仅是使用连接字符串:(