[英]SQL Server Error "[ConnectionError: Login failed for user '****'.] "while connecting SQL Server with Nodejs using MSSQL
我得到以下錯誤
[ConnectionError: Login failed for user '****'.]
name: 'ConnectionError',
message: 'Login failed for user \'****\'.',
code: 'ELOGIN' } "
下面是我使用 mssql 包將 sql server 與 nodejs 連接的代碼。
var sql = require('mssql');
var config = {
server: "localhost\\",// You can use 'localhost\\instance' to connect to named instance
database: "***",
user: "***",
password: "",
port: 1433
};
function getdata() {
var conn = new sql.Connection(config);
var req = new sql.Request(conn);
conn.connect(function (err) {
If (err) {
console.log(err);
return;
}
req.query("select * From" ,function (err,recordset) {
If (err) {
console.log(err);
return;
}
else {
console.log(recordset);
}
conn.close();
enter code here
});
});
}
getdata();
以下是我將控制台添加到“conn”時顯示的消息,如果我錯過了什么,請告訴我。
config:
{ server: '',
database: '',
user: '',
password: '',
port: 1433,
driver: 'tedious',
options: {},
stream: false,
parseJSON: false },
driver:
{ Connection:
{ [Function: TediousConnection]
EventEmitter: [Object],
usingDomains: false,
defaultMaxListeners: 10,
init: [Function],
listenerCount: [Function],
__super__: [Object] },
Transaction:
{ [Function: TediousTransaction]
EventEmitter: [Object],
usingDomains: false,
defaultMaxListeners: 10,
init: [Function],
listenerCount: [Function],
__super__: [Object] },
Request:
{ [Function: TediousRequest]
EventEmitter: [Object],
usingDomains: false,
defaultMaxListeners: 10,
init: [Function],
listenerCount: [Function],
__super__: [Object] },
fix: [Function] } }
started
我看到這里沒有人回答這個問題,
以下是使用'mssql'的工作代碼,
var sql = require('mssql');
var config = {
server: 'localhost',
database: 'sampleDB',
user: 'YourUser',
password: 'YourPassword',
port: '1433'
};
function listProducts() {
var conn = new sql.ConnectionPool(config);
conn.connect().then(function () {
var request = new sql.Request(conn);
request.query("select * from products").then(function (recordSet) {
console.log(recordSet);
conn.close();
}).catch(function (err) {
console.log(err);
conn.close();
});
}).catch(function (err) {
console.log(err);
});
}
listProducts();
在您的解決方案中,嘗試將端口號放在引號中並使用
var conn=new sql.ConnectionPool(config);
代替,
var conn=new sql.Connection(config);
還有一種解決方案,可以使用“乏味”與sql server建立連接,
var Connection = require('tedious').Connection;
var config = {
server: "localhost",
userName: "YourUser",
password: "YourPassword",
database: "sampleDB"
};
var connection = new Connection (config);
connection.on('connect', function(err){
console.log(err);
if(err!=null){
console.log("not connected");
}
else{
console.log("Connected")
connection.close();
};
});
我希望這可以幫助遇到同樣問題的人。
現在回答可能為時已晚,但最近發生在我身上的這件事讓我發瘋了!!! 我試圖將我的數據庫連接到 express 並且我正在使用 Windows 身份驗證模式。 整整兩天我一直在谷歌搜索和刷新,直到我得到這篇文章: https : //www.liquidweb.com/kb/troubleshooting-microsoft-sql-server-error-18456-login-failed-user/
簡而言之;
首先,我安裝了用於 Windows 身份驗證的msnodesqlv8
驅動程序,然后在 ssms 上的我的服務器中,我右鍵單擊我的服務器,然后在屬性和安全性中,我啟用了 sql server 和 windows 身份驗證模式,然后在對象資源管理器中,單擊加號在服務器旁邊,然后是安全,然后是登錄。 在那里我看到旁邊有一個十字架的sa
。 在它的屬性中,我將密碼更改為更容易記住的密碼(可選),然后在狀態中,將登錄設置為啟用。 呸!
現在我的配置代碼:<br />
const config = {
user: 'sa',
password: '123',
driver: "msnodesqlv8",
server: 'UZAIR-S_PC\\SQLEXPRESS',
database: 'LearningExpressJS',
options: {
trustedconnection: true,
enableArithAbort : true,
trustServerCertificate: true,
instancename : 'SQLEXPRESS'
},
port: 58018
}
這終於奏效了!!!!!!!!!!!!!!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.