使用 Sequelize 连接到本地 SQL 服务器
Connect to local SQL Server with Sequelize
我最近设置了一个本地 SQL 服务器数据库来开发我的节点应用程序。我在尝试从我的节点应用程序连接到它时遇到问题。
我能够使用以下命令连接到 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 服务器的哪些值传递给 Sequelize。在哪里可以找到日志并查看正在使用的实际连接字符串?
尝试将 "port": "1433",
添加到您的配置中。输出中的 undefined 是端口应该在的位置,我在你的配置中没有看到它。
我相信 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 应该会为您提供更多调试信息。
我最终不得不使用 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"
}
}
我也 运行 参与其中,发现我的 SQL 服务器浏览器服务已停止。从 SQL 服务器配置管理器启动服务后,我就可以连接了。
它记录在 GitHub 项目
的需求中
Please make sure MS SQL Server TCP/IP connection is enabled and
Server Browsing is up and running.
嗨,就我而言,按照以下步骤操作对我来说效果很好:
1 安装乏味 -> npm 安装乏味
2 然后在数据库实用程序 node.js 文件中 ->
const Sequelize = require('sequelize').Sequelize;
sequelize = new Sequelize('DB_NAME', 'username', 'password', {
主持人:'localhost',
方言:'mssql',
方言选项:{
实例名称:'MSSQLSERVER'
}
});
module.exports = 续集;
如果有人仍在为此苦苦挣扎,就我而言,我通过将本地 SQL Server Express 配置为可通过网络访问来解决它
(参见 link 了解如何 https://www.c-sharpcorner.com/article/configuring-sql-server-2016-express-on-lan-for-c-sharp-connection-string/)
然后配置sequelize with
主持人:'localhost',
端口:'1433',
如果有人试图将 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'
}
}
})
这是文档link
https://sequelize.org/master/manual/dialect-specific-things.html
如果这不起作用,请尝试将 instanceName 值更改为 'MSSQLSERVER'。
我最近设置了一个本地 SQL 服务器数据库来开发我的节点应用程序。我在尝试从我的节点应用程序连接到它时遇到问题。
我能够使用以下命令连接到 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 服务器的哪些值传递给 Sequelize。在哪里可以找到日志并查看正在使用的实际连接字符串?
尝试将 "port": "1433",
添加到您的配置中。输出中的 undefined 是端口应该在的位置,我在你的配置中没有看到它。
我相信 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 应该会为您提供更多调试信息。
我最终不得不使用 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"
}
}
我也 运行 参与其中,发现我的 SQL 服务器浏览器服务已停止。从 SQL 服务器配置管理器启动服务后,我就可以连接了。
它记录在 GitHub 项目
的需求中Please make sure MS SQL Server TCP/IP connection is enabled and Server Browsing is up and running.
嗨,就我而言,按照以下步骤操作对我来说效果很好:
1 安装乏味 -> npm 安装乏味
2 然后在数据库实用程序 node.js 文件中 ->
const Sequelize = require('sequelize').Sequelize;
sequelize = new Sequelize('DB_NAME', 'username', 'password', { 主持人:'localhost', 方言:'mssql', 方言选项:{ 实例名称:'MSSQLSERVER' } });
module.exports = 续集;
如果有人仍在为此苦苦挣扎,就我而言,我通过将本地 SQL Server Express 配置为可通过网络访问来解决它
(参见 link 了解如何 https://www.c-sharpcorner.com/article/configuring-sql-server-2016-express-on-lan-for-c-sharp-connection-string/)
然后配置sequelize with
主持人:'localhost', 端口:'1433',
如果有人试图将 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'
}
}
})
这是文档link https://sequelize.org/master/manual/dialect-specific-things.html
如果这不起作用,请尝试将 instanceName 值更改为 'MSSQLSERVER'。