我最近设置了一个本地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 I应该传递给Sequelize的值。在哪里可以找到日志并查看正在使用的实际连接字符串?
答案 0 :(得分:2)
嗨,在我的情况下,按照以下步骤对我来说效果很好:
1 安装繁琐 -> npm 安装繁琐
2 然后在 DB 实用程序 node.js 文件中 ->
const Sequelize = require('sequelize').Sequelize;
sequelize = new Sequelize('DB_NAME', 'username', 'password', { 主机:'本地主机', 方言:'mssql', 方言选项:{ 实例名称:'MSSQLSERVER' } });
module.exports = sequelize;
答案 1 :(得分: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在运行时会给你更多的调试信息。
答案 2 :(得分:0)
我最终不得不使用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"
}
}
答案 3 :(得分:0)
我也遇到了这个问题,发现我的SQL Server Browser服务已停止。从SQL Server配置管理器启动服务后,便可以连接。
它记录在GitHub项目的要求中
请确保已启用MS SQL Server TCP / IP连接,并且 服务器浏览已启动并正在运行。
答案 4 :(得分:0)
如果有人还在为此苦苦挣扎,就我而言,我通过将本地 SQL Server Express 配置为可通过网络访问来解决此问题
然后配置 sequelize with
主机:'本地主机', 端口:'1433',