本文介紹了在 Linux/Ubuntu 上使用 Nodejs + MSSQL的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
限時送ChatGPT賬號..
我的 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);/* ... 查詢錯誤檢查 ... *
【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!