Sequelize连接SQL Server提示Failed to connect to localhost:1433如何解决
问题原因及缺失配置说明
你需要补全以下几个核心配置项即可解决连接报错:
- 取消
host/server字段的注释,必须明确指定数据库服务地址,两个字段二选一填写即可,本地连接填localhost即可 - 你使用
sequelize-msnodesqlv8驱动走Windows集成认证(免账号密码),必须在dialectOptions中新增trustedConnection: true配置,开启可信连接模式 - 确认
InstanceName参数和你本地SQL Server的实际实例名一致,你注释的连接字符串中写的是MSSQLSERVER01,当前配置写的是MSSQLSERVER,二者不匹配,建议优先到SQL Server配置管理器中确认实际实例名再填写;如果是默认实例可以直接删除该配置项 - SQL Server 2016及以上版本默认要求加密连接,建议在
dialectOptions中新增encrypt: false(本地开发测试用,生产环境建议配置证书后开启加密) - 不要混合使用独立配置项(host/port/database)和
connectionString连接字符串,二者选一种配置方式即可,避免优先级冲突导致配置不生效
修正后参考配置
module.exports = { host: "localhost", database: "testdb", dialectModulePath: 'sequelize-msnodesqlv8', dialect: "mssql", port : 1433, dialectOptions : { encrypt: false, InstanceName : "你的实际SQL实例名", trustedConnection: true }, pool: { max: 5, min: 0, acquire: 30000, idle: 10000 } };
额外排查点
如果配置修正后依然报错,可以先做以下验证:
- 打开cmd执行
telnet localhost 1433,确认1433端口可以正常连通,确认SQL Server服务正在运行 - 确认SQL Server配置管理器中,对应实例的TCP/IP协议下的IPAll端口已经设置为1433
内容的提问来源于stack exchange,提问作者newnick988888
相关产品推荐
相关产品推荐

