2017-05-13 79 views
0

我一直在尋找這個相當長的一段時間,我真的很難過。使用Node.js連接到MSSQL 2014

下面是我使用的代碼:

const sql = require('mssql/msnodesqlv8'); 
const pool = new sql.ConnectionPool({ 
    server: '127.0.0.1', 
    database: 'Test', 
    driver: 'msnodesqlv8', 
    port: 1234, 
    options: { 
    trustedConnection: true 
    } 
}) 

pool.connect().then(() => { 

    pool.request().query('select * from test1', (err, result) => { 
     console.dir(result) 
    }) 
}) 

奇怪的部分是,如果我連接到「主」數據庫,並訪問系統表,它工作正常,但一旦我把它切換到不同的數據庫上在同一臺服務器,出現錯誤:「登錄失敗,用戶......」

我曾嘗試以下不已: 1.啓用TCP/IP 2.確信SQL Server服務,SQL瀏覽器服務,SQL服務代理正在運行 3.我已授予完全訪問我的Windows用戶

我在做什麼錯?

+0

我使用npm mssql包,但如果你可以建議另一個工程,那就太好了。我已經用seriate試過我的運氣,我也嘗試下載node-sqlserver,但後者似乎不再被維護 – Joe

+0

檢查SQL Server錯誤日誌。登錄失敗消息將包含有關登錄失敗原因的其他信息。 –

+0

檢查日誌;它表示「未能打開明確指定的數據庫」測試「[CLIENT:]。我可以通過SSMS訪問它,並且我已經讓用戶成爲數據庫的所有者,但仍然存在問題 – Joe

回答

0

這裏是我做了什麼,以確保我的應用程序連接到MSSQL:

  1. 確保SQL Server服務運行
  2. 確保SQL Server Browser服務正在運行
  3. 確保你」已向用戶提供用於從應用程序連接到數據庫的SQL特權
  4. 確保TCP/IP已啓用,並且您正在連接正確的端口。

終於...

  • 確保您的應用和正在創建的數據庫實際上是相同的「本地主機」。 (我連接到的LocalDB和我的應用程序連接到本地主機(命名實例))
  • 如果服務通過查看SQL Server配置管理器

    希望運行時,您可以檢查這有助於人誰是面臨同樣的問題