本文介绍了在 Linux/Ubuntu 上使用 Nodejs + MSSQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!
问题描述
我的 nodejs 应用程序连接到 MSSQL 服务器,在我的 Windows 笔记本电脑上运行良好,唱 mssql@npm
同一个应用程序无法在我的 Ubuntu 笔记本电脑中看到数据库.
我在 Ubuntu 中定义了 mssql 连接如下,我是否遗漏了什么?
- 将我的 ~/.profile 更新为:
<块引用>
~$ export ODBCINI=/etc/odbc.ini~$ 导出 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[智慧服务器]主机 = 192.168.0.10端口 = 1433tds 版本 = 7.0
- 使用 sqsh 测试了 FreeTDS 连接,它工作正常:
<块引用>
~$ sqsh -S ACUMENSERVER -U mssql-username -P mssql-password
- 配置的 ODBC - odbcinst.ini:
<块引用>
~$ sudo gedit/etc/odbcinst.ini[免费TDS]说明 = TDS 驱动程序 (Sybase/MS SQL)驱动程序 =/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so设置 =/usr/lib/x86_64-linux-gnu/odbc/libtdsS.soCP超时=CP重用=文件使用率 = 1
- 配置的 ODBC - odbc.ini:
<块引用>
~$ sudo gedit/etc/odbc.ini[智慧服务器]驱动程序 = FreeTDS说明 = 通过 FreeTDS 的 ODBC 连接跟踪 = 否服务器名称 = ACUMENSERVER数据库 = myDataBase
- 用 isql 测试了 ODBC 连接,它工作正常:
<块引用>
isql -v ACUMENSERVER mssql-username mssql-passward
当我运行我的 nodejs 应用程序(在 Windows 中运行良好)时,我在 Ubuntu 中遇到以下错误,考虑到上述所有内容都已完成,并检查:
{ name: 'ConnectionError',消息:'无法连接到 ACUMENSERVER:1433 - getaddrinfo ENOTFOUND',代码:'ESOCKET' }
这里可能有什么错误/遗漏,我可以使用另一个 npm 包进行 mssql 连接.
解决方案
我发现如果使用服务器的 IP 地址,这可以工作,服务器名称不起作用!
以下对我有用:
1 安装 mssql:
npm 安装 mssql
2 index.js 文件:
var sql = require('mssql');变量配置 = {用户:'sa',密码:'sql@123',//server: 'myServername', -->不工作//服务器:'ACUMENSERVER', -->不工作服务器:'6192.168.0.10',//有效数据库:'myDB'}sql.connect(config).then(function() {//询问new sql.Request().query('select top 1 itemcode from OITM').then(function(recordset) {控制台目录(记录集);}).catch(function(err) {console.log(err);/* ... 查询错误检查 ... *
本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!