Nodejs 连接 mysql时报Error: Cannot enqueue Query after fatal error错误的处理办法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

一、nodejs连接mysql?

npm install mysql --save

创建连接代码 db.js

//导入mysql连接包
const mysql = require('mysql');
let dbconfig ={
    
    
    host: 'db_host',
    user: 'db_user',
    password: 'db_pass',
    database: 'db_name',
    debug: true
};
function handleDisconnection() {
    
    
    db = mysql.createConnection(dbconfig);
    db.connect(function (err) {
    
    
        if (err) {
    
    
            console.log('db connect error:' + err.message + "2秒后重连");
            setTimeout(handleDisconnection, 2000);
        }
    });

    db.on('error', function (err) {
    
    
        console.log(err);
        if (err.code === 'PROTOCOL_CONNECTION_LOST') {
    
    
            console.log('db error执行重连:' + err.message);
            handleDisconnection();
        } else {
    
    
            throw err;
        }
    });
    db.querySync = function(sql) {
    
    
        return new Promise(function(resolve, reject) {
    
    
            db.query(sql, function(error, results, fields) {
    
    
                if(error) reject(error);
                else resolve({
    
    results, fields})
            })
        })
    };
    return db;

}
//创建连接conn
exports.db = handleDisconnection();

二、Nodejs 连接 mysql时报错 Error: Cannot enqueue Query after fatal error

1.原配置参数

let dbconfig ={
    
    
    host: 'db_host',
    user: 'db_user',
    password: 'db_pass',
    database: 'db_name',
    debug: true
};

只要加上useConnectionPooling: true参数就可以了

2.新配置参数

let dbconfig ={
    
    
    host: 'db_host',
    user: 'db_user',
    password: 'db_pass',
    database: 'db_name',
    useConnectionPooling: true,
    debug: true
};

猜你喜欢

转载自blog.csdn.net/itopit/article/details/130620406