【问题标题】:Why Can't I connect SQL Server to my node js为什么我不能将 SQL Server 连接到我的节点 js
【发布时间】:2020-09-20 08:19:22
【问题描述】:

我正在使用“mssql”npm 包将我的 SQL 服务器连接到我的节点 JS。 我问了几个问题,但都没有解决。

我的 SQL Server 登录凭据是-

server type : Database Engine
Server name : DESKTOP-MPF88ST\KUSHAL 
authentication : sql server authentication 
login : username 
password : password

我想要的数据库是 schoolDB 我的代码是这样的

const sql =require("mssql")

const config = {
        login: 'username',
        password:'password',
        server: 'localhost',
        database: "schoolDB",
        options : {
            enableArithAbort: true
        },
        port : 1433
}

sql.connect(config, (err) => {
        if(err){
            console.log(err);
        }
        else {
            console.log("Connected")
        }

我启用并设置了我的 TCP/IP,启用了 SQL Server 浏览器,但它仍然抛出错误-

ConnectionError: Failed to connect to localhost:1433 - Could not connect (sequence)
    at Connection.<anonymous> (E:\Kushals\server\node_modules\mssql\lib\tedious\connection-pool.js:68:17)
    at Object.onceWrapper (events.js:422:26)
    at Connection.emit (events.js:315:20)
    at Connection.socketError (E:\Kushals\server\node_modules\mssql\node_modules\tedious\lib\connection.js:1290:12)
    at E:\Kushals\server\node_modules\mssql\node_modules\tedious\lib\connection.js:1116:21    
    at SequentialConnectionStrategy.connect (E:\Kushals\server\node_modules\mssql\node_modules\tedious\lib\connector.js:87:14)
    at Socket.onError (E:\Kushals\server\node_modules\mssql\node_modules\tedious\lib\connector.js:100:12)
    at Socket.emit (events.js:315:20)
    at emitErrorNT (internal/streams/destroy.js:92:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:60:3) {
  code: 'ESOCKET',
  originalError: ConnectionError: Failed to connect to localhost:1433 - Could not connect (sequence)
      at ConnectionError (E:\Kushals\server\node_modules\mssql\node_modules\tedious\lib\errors.js:13:12)
      at Connection.socketError (E:\Kushals\server\node_modules\mssql\node_modules\tedious\lib\connection.js:1290:56)
      at E:\Kushals\server\node_modules\mssql\node_modules\tedious\lib\connection.js:1116:21  
      at SequentialConnectionStrategy.connect (E:\Kushals\server\node_modules\mssql\node_modules\tedious\lib\connector.js:87:14)
      at Socket.onError (E:\Kushals\server\node_modules\mssql\node_modules\tedious\lib\connector.js:100:12)
      at Socket.emit (events.js:315:20)
      at emitErrorNT (internal/streams/destroy.js:92:8)
      at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
      at processTicksAndRejections (internal/process/task_queues.js:84:21) {
    code: 'ESOCKET'
  }
}

我该如何解决??

【问题讨论】:

  • 您的服务器名称是DESKTOP-MPF88ST\KUSHAL,但您指定了本地主机。您需要指定server : "DESKTOP-MPF88ST\KUSHAL"
  • @PrebenHuybrechts 也尝试过这样做......没有帮助。仍然是完全相同的错误....
  • @Preben 在命令行中 ping DESKTOP-MPF88ST 看看你得到了什么,那是你所在的机器吗?当你不再使用 localhost 时,你怎么能得到完全相同的错误?
  • 我认为你们没有得到它,当您启动 SQL Server Management Studio 时,您被要求登录,“服务器名称”字段设置为该值。那可能不是真正的服务器,我ping了一下,cmd说Ping request could not find host DESKTOP-MPF88ST\KUSHAL. Please check the name and try again.
  • @KushalChowdhury 您被要求 ping 计算机名称 DESKTOP-MPF88ST,而不是服务器实例名称 DESKTOP-MPF88ST\KushAL。

标签: javascript sql node.js sql-server


【解决方案1】:

试试这个:

const sql = require('mssql/msnodesqlv8')

const pool = new sql.ConnectionPool({
  login: 'username',
  password:'password',
  database: 'schoolDB',
  server: 'DESKTOP-MPF88ST\KUSHAL',
  driver: 'msnodesqlv8',
  options: {
    trustedConnection: true
  }
})

pool.connect().then(() => {
  //sample query
  pool.request().query('select 1 as number', (err, result) => {
        console.dir(result)
    })
})

【讨论】:

  • 不,兄弟,它崩溃了,说找不到模块 msnodesqlv8
  • 所以用 npm 安装它?
  • 啊,抱歉,没有意识到这是一个不同的包。是的,现在它正在工作。非常感谢 !!另外,你能帮我找出我的代码到底出了什么问题吗??
  • 使用默认驱动你根本无法通过 windows 域登录
  • @KushalChowdhury 别忘了您也输入了错误的连接信息。
【解决方案2】:

确保 TCP/IP 协议已启用,因为它默认处于禁用状态。

步骤:

  1. 进入计算机管理

  2. 在服务和应用程序下 -> SQL Server 配置管理器 -> SQL Server 网络配置 -> 点击“Protocols for MSSQLSERVER”

  3. 您将看到 TCP/IP 部分(启用右键单击并启用它)

【讨论】:

  • 我启用了 TCP/IP,我在很多地方都看到了它,这就是为什么我先配置它,我在帖子中也提到过。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多