在 Linux/Ubuntu 上使用 Nodejs + MSSQL

时间:2023-02-07
本文介绍了在 Linux/Ubuntu 上使用 Nodejs + MSSQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我的 nodejs 应用程序连接到 MSSQL 服务器,在我的 Windows 笔记本电脑上运行良好,唱 mssql@npm

同一个应用程序无法在我的 Ubuntu 笔记本电脑中看到数据库.

我在 Ubuntu 中定义了 mssql 连接如下,我是否遗漏了什么?

  1. 将我的 ~/.profile 更新为:

<块引用>

 ~$ export ODBCINI=/etc/odbc.ini~$ 导出 ODBCSYSINI=/etc~$ export FREETDSCONF=/etc/freetds/freetds.conf

  1. 注销笔记本电脑,以激活上述内容,并刷新配置文件.

  2. 安装了所需的连接包.

<块引用>

 ~$ sudo apt-get install unixodbc unixodbc-dev freetds-dev sqsh tdsodbc -y

  1. 配置的 FreeTDS

<块引用>

 ~$ sudo gedit/etc/freetds/freetds.conf[智慧服务器]主机 = 192.168.0.10端口 = 1433tds 版本 = 7.0

  1. 使用 sqsh 测试了 FreeTDS 连接,它工作正常:

<块引用>

 ~$ sqsh -S ACUMENSERVER -U mssql-username -P mssql-password

  1. 配置的 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

  1. 配置的 ODBC - odbc.ini:

<块引用>

~$ sudo gedit/etc/odbc.ini[智慧服务器]驱动程序 = FreeTDS说明 = 通过 FreeTDS 的 ODBC 连接跟踪 = 否服务器名称 = ACUMENSERVER数据库 = myDataBase

  1. 用 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);/* ... 查询错误检查 ... *