Sql server odbc节点无法连接到mssql
我花了一两天的时间在Ubuntu12上设置了unixODBC和freetds——这本身并不是一个有趣的过程,但现在它可以同时使用sqsh和isql。我已经安装了odbc节点,并且正在使用中提供的代码段来测试连接,但是我总是得到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
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…这现在要求我们分发和维护配置文件,而不仅仅是使用连接字符串:(