【发布时间】:2021-02-15 22:48:36
【问题描述】:
我正在尝试使用 mssql 节点包连接到 Microsoft SQL Server (MSSQL) 数据库。它不是默认实例,它使用 Windows 身份验证。我正在运行 Windows 10 x64,我尝试访问的数据库是由第 3 方软件安装的,它是一个 SQL Server 2008 x86 实例。不确定这是否是问题的一部分,但在 SQL Management Studio 中,属性菜单显示此数据库的操作系统是 Microsoft Windows NT 6.2 (9200),产品是 Microsoft SQL Server Express Edition。名称是 2JBBK72-E7450\SHOPSTREAM,相同的值列在 Server 下的 Connection 窗格中。在 Connection 下的 Connection 窗格中是 2JBBK72-E7450\sjay5。我不确定数据库是在 SQL Server 身份验证还是 Windows 身份验证模式下设置的。 SQL Management Studio 中的服务器属性说两者都已启用,但我不知道 SQL 用户名和密码是什么。
这里是 mssql npm 包的文档:https://www.npmjs.com/package/mssql
这是我的 node.js 代码:
const sql = require('mssql');
const config = {
driver: 'msnodesqlv8',
// user: 'root',
// password: 'password',
// server: 'localhost\\2JBBK72-E7450\\SHOPSTREAM', // You can use 'localhost\\instance' to connect to named instance
// server: 'localhost', // You can use 'localhost\\instance' to connect to named instance
database: 'ShopMgtDemo',
// connectionString: 'Server=2JBBK72-E7450\\SHOPSTREAM;Database=ShopMgtDemo;Trusted_Connection=Yes;',
// connectionString: 'Driver={SQL Server Native Client 11.0};Server=2JBBK72-E7450\\SHOPSTREAM;',
// default connection string: 'Driver={SQL Server Native Client 11.0};Server={#{server}\\#{instance}};Database={#{database}};Uid={#{user}};Pwd={#{password}};Trusted_Connection={#{trusted}};'
options: {
instanceName: '2JBBK72-E7450\\SHOPSTREAM',
// instanceName: 'SHOPSTREAM',
trustedConnection: true,
},
};
// const uri = 'mssql://localhost/2JBBK72-E7450/SHOPSTREAM/ShopMgtDemo?driver=msnodesqlv8';
// const connectionString = 'Driver=msnodesqlv8;Server=(local)\\2JBBK72-E7450\\SHOPSTREAM;Database=ShopMgtDemo;';
// default connection string: 'Driver=msnodesqlv8;Server=(local)\INSTANCE;Database=database;UID=DOMAIN\username;PWD=password;Encrypt=true;';
sql.connect(config).then(
() => (
new sql.Request()
.query('select * from SM.RepairOrder')
.then(recordset => console.dir(recordset))
.catch(err => console.error(err))
),
err => console.error(err)
)
.catch(err => console.error(err));
当我运行它时,我收到以下错误:
{ ConnectionError: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
at C:\Users\sjay5\Code\mitchell-sql-feathers\node_modules\mssql\lib\msnodesqlv8.js:222:25
at Immediate._onImmediate (C:\Users\sjay5\Code\mitchell-sql-feathers\node_modules\msnodesqlv8\lib\ConnectionWrapper.js:343:21)
at tryOnImmediate (timers.js:543:15)
at processImmediate [as _immediateCallback] (timers.js:523:5)
name: 'ConnectionError',
message: '[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified',
code: 0 }
【问题讨论】:
标签: sql-server node.js sql-server-2008