Node-odbc无法连接到mssql
我花了最后一两天设置unixODBC和freetds在Ubuntu 12 – 本身不是一个有趣的过程,但它现在可以同时使用sqsh和isql。 我已经安装了node-odbc,我正在使用github自述文件中提供的代码片段来testing连接,但是我总是得到
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
(使用正确的creds ..),然后use DATABASE
一旦连接,这一切工作,我可以运行查询罚款。 我在js中的连接string是
"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
提前感谢任何帮助!
今天遇到这个问题,结果是我需要指定一个端口号作为连接string的一部分。 仅供参考。
它看起来像我刚刚find了解决办法,虽然我不完全明白为什么。 如果使用的连接string是:
"DRIVER={FreeTDS};SERVER=SERVER;UID=user;PWD=pass;DATABASE=DATABASE"
然后由于某种原因,它根本不工作,我已经尝试使用设置SERVER作为机器的IP和实际名称…没有运气。 但是,如果我更改连接string使用SERVERNAME或DSN(只能有一个SERVER,SERVERNAME或DNS中的string),我提供机器名称,然后它工作正常,我不能让它与IP的工作,无论我尝试了。 所以,总之,为我工作的连接string是:
"DRIVER={FreeTDS};SERVERNAME=SERVERNAME;UID=user;PWD=pass;DATABASE=DATABASE"
这个问题的关键似乎在于SQLDriverConnect。