【发布时间】:2016-01-11 15:44:02
【问题描述】:
我的 nodejs 应用程序连接到 MSSQL 服务器,在我的 Windows 笔记本电脑上完美运行,唱歌 mssql@npm
同一应用无法在我的 Ubuntu 笔记本电脑中看到数据库。
我在 Ubuntu 中定义了 mssql 连接如下,我错过了什么吗?
- 更新了我的 ~/.profile,如下:
~$ export ODBCINI=/etc/odbc.ini ~$ export ODBCSYSINI=/etc ~$ export FREETDSCONF=/etc/freetds/freetds.conf
注销笔记本电脑,以激活上述内容,并刷新配置文件。
已安装所需的连接包。
~$ sudo apt-get install unixodbc unixodbc-dev freetds-dev sqsh tdsodbc -y
- 配置的 FreeTDS
~$ sudo gedit /etc/freetds/freetds.conf [ACUMENSERVER] host = 192.168.0.10 port = 1433 tds version = 7.0
- 用 sqsh 测试了 FreeTDS 连接,它工作正常:
~$ sqsh -S ACUMENSERVER -U mssql-username -P mssql-password
- 已配置 ODBC - odbcinst.ini:
~$ sudo gedit /etc/odbcinst.ini [FreeTDS] Description = TDS driver (Sybase/MS SQL) Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so CPTimeout = CPReuse = FileUsage = 1
- 配置的 ODBC - odbc.ini:
~$ sudo gedit /etc/odbc.ini [ACUMENSERVER] Driver = FreeTDS Description = ODBC connection via FreeTDS Trace = No Servername = ACUMENSERVER Database = myDataBase
- 用 isql 测试了 ODBC 连接,效果很好:
isql -v ACUMENSERVER mssql-username mssql-passward
当我运行我的 nodejs 应用程序(在 Windows 中运行良好)时,我在 Ubuntu 中遇到以下错误,考虑到上述所有操作都已完成,并检查:
{ name: 'ConnectionError',
message: 'Failed to connect to ACUMENSERVER:1433 - getaddrinfo ENOTFOUND',
code: 'ESOCKET' }
这里可能有什么错误/遗漏的东西,我愿意使用另一个 npm 包进行 mssql 连接。
【问题讨论】:
标签: sql-server node.js ubuntu freetds unixodbc