0

我最近设置了一个本地 SQL Server Db 来开发我的节点应用程序。我在尝试从我的节点应用程序连接到它时遇到问题。

我能够使用以下命令与 sqlcmd 连接:

sqlcmd -S <hostname>\<instanceName>

我正在使用 Sequelize cli 尝试在我的开发数据库上运行迁移。

我的 config.json 如下:

{
  "development": {
    "username": "<my windows domain username>",
    "password": "<my windows domain password>",
    "database": "development",
    "host": "127.0.0.1",
    "dialect": "mssql",
    "dialectOptions": {
      "instanceName": "LocalServer",
      "domain": "<my company's domain>"
    }
  }
} 

我在设置时将名称从 EXPRESS 更改为 LOCALSERVER(不要问我为什么)。我还将它设置为使用 Windows 身份验证和 SQL SERVER 登录登录。我最近尝试过的各种配置都出现了各种错误:

ERROR: Failed to connect to 127.0.0.1:undefined in 15000ms

我想我可能不理解我应该将 SQL Server 中的哪些值传递给 Sequelize。在哪里可以找到日志并查看正在使用的实际连接字符串?

4

6 回答 6

2

嗨,就我而言,按照以下步骤操作对我来说效果很好:

1 安装繁琐 -> npm install 繁琐

2 然后在 DB 实用程序 node.js 文件中 ->

const Sequelize = require('sequelize').Sequelize;

sequelize = new Sequelize('DB_NAME', 'username', 'password', { host: 'localhost', dialect: 'mssql', dialectOptions: { instanceName: 'MSSQLSERVER' } });

module.exports = 续集;

于 2021-03-19T10:53:17.683 回答
1

我最终不得不使用sequelize-msnodesqlv8,因为我使用的是 sqlserver,这是使用 Windows 进行身份验证的唯一方法。我的最终连接配置对象如下所示:

 {
 "development": {
    "dialect": "mssql",
    "dialectModulePath": "sequelize-msnodesqlv8",
    "dialectOptions": {
        "driver": "SQL Server Native Client 11.0",
        "trustedConnection": "true"
    },
    "username": "<my windows domain username>",
    "password": "<my windows domain password>",
    "database": "development",
    "host": "127.0.0.1",
    "port": 1433,
    "logging": "true"
  }
} 
于 2017-12-22T22:20:23.123 回答
0

我也遇到了这个问题,发现我的 SQL Server Browser 服务已停止。从 SQL Server 配置管理器启动服务后,我就能够连接。

它记录在 GitHub 项目的要求中

请确保 MS SQL Server TCP/IP 连接已启用并且 服务器浏览已启动并正在运行。

https://github.com/ErenYatkin/sequelizeJS-mssql

于 2018-12-08T15:33:08.527 回答
0

如果有人仍在为此苦苦挣扎,就我而言,我通过将本地 SQL Server Express 配置为可通过网络访问来解决它

(查看链接以了解如何https://www.c-sharpcorner.com/article/configuring-sql-server-2016-express-on-lan-for-c-sharp-connection-string/

然后配置sequelize

主机:'localhost',端口:'1433',

于 2021-05-26T10:24:57.383 回答
0

如果有人试图将 sequelize 与他们的 mssql 域帐户连接,这里是代码

const sequelize = new Sequelize('database', null, null, {
  dialect: 'mssql',
  dialectOptions: {
    authentication: {
      type: 'ntlm',
      options: {
        domain: 'yourDomain',
        userName: 'username',
        password: 'password'
      }
    },
    options: {
      instanceName: 'SQLEXPRESS'
    }
  }
})

这是文档链接 https://sequelize.org/master/manual/dialect-specific-things.html

如果这不起作用,请尝试将 instanceName 值更改为“MSSQLSERVER”。

于 2021-10-19T04:14:51.063 回答
0

尝试添加"port": "1433",到您的配置中。你的输出中的未定义是端口应该在哪里,我在你的配置中看不到它。

我相信 MsSql 的默认端口是 1443。

如果这对您不起作用,请使用以下内容创建一个新脚本:

const Sequelize = require('sequelize')
const sequelize = new Sequelize({
    dialect: 'mssql',
    database: 'your-database-name',
    username: 'your-username',
    host: 'localhost',
    port: '1433',
    password: 'your-password',
    logging: true,
})

以这种方式运行时,Sequelize 应该为您提供更多调试信息。

于 2017-12-20T08:30:37.073 回答