【发布时间】:2021-12-30 20:04:02
【问题描述】:
起初我的 sql 代码是:
var express = require('express');
const mysql = require("mysql");
var db = mysql.createConnection({
host: 'ipaddress',
user: 'username',
password: 'password',
database: 'my77admin'
});
db.connect(function (err) {
if (err) throw err;
console.log("Connected!");
});
并且一直断开连接 所以经过一些研究后,我添加了一个句柄断开连接以重新连接 mysql 上面代码的下面
function handleDisconnect(myconnection) {
myconnection.on('error', function (err) {
console.log('\nRe-connecting lost connection: ' + err.stack);
db.destroy();
db = mysql.createConnection(db.db);
handleDisconnect(db);
db.connect();
});
}
handleDisconnect(db);
module.exports = db
现在问题变成了 我的 pm2 中的错误日志
│││ www > error when connecting to db: Error: ER_ACCESS_DENIED_ERROR: Access denied for user ''@'localhost' (using password: NO) │
│││ www > at Handshake.Sequence._packetToError (/root/my77admin/node_modules/mysql/lib/protocol/sequences/Sequence.js:47:14) │
│││ www > at Handshake.ErrorPacket (/root/my77admin/node_modules/mysql/lib/protocol/sequences/Handshake.js:123:18)│
│││ www > at Protocol._parsePacket (/root/my77admin/node_modules/mysql/lib/protocol/Protocol.js:291:23)│
│││ www > at Parser._parsePacket (/root/my77admin/node_modules/mysql/lib/protocol/Parser.js:433:10) │
│││ www > at Parser.write (/root/my77admin/node_modules/mysql/lib/protocol/Parser.js:43:10) │
│││ www > at Protocol.write (/root/my77admin/node_modules/mysql/lib/protocol/Protocol.js:38:16) │
│││ www > at Socket.<anonymous> (/root/my77admin/node_modules/mysql/lib/Connection.js:88:28)│
│││ www > at Socket.<anonymous> (/root/my77admin/node_modules/mysql/lib/Connection.js:526:10) │
│││ www > at Socket.emit (node:events:390:28) │
│││ www > at addChunk (node:internal/streams/readable:324:12) │
│││ www > -------------------- │
│││ www > at Protocol._enqueue (/root/my77admin/node_modules/mysql/lib/protocol/Protocol.js:144:48) │
│││ www > at Protocol.handshake (/root/my77admin/node_modules/mysql/lib/protocol/Protocol.js:51:23) │
│││ www > at Connection.connect (/root/my77admin/node_modules/mysql/lib/Connection.js:116:18) │
│││ www > at Timeout.handleDisconnect [as _onTimeout] (/root/my77admin/routes/products_listing.js:19:14) │
│││ www > at listOnTimeout (node:internal/timers:568:17) │
│││ www > at processTimers (node:internal/timers:510:7) { │
│││ www > code: 'ER_ACCESS_DENIED_ERROR', │
│││ www > errno: 1045, │
│││ www > sqlMessage: "Access denied for user ''@'localhost' (using password: NO)",│
│││ www > sqlState: '28000', │
│││ www > fatal: true
我该怎么办? 我可以确认第一个连接正常。但几秒钟后它开始循环错误
【问题讨论】: