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

文章介绍了在Node.js中使用mysql模块连接MySQL数据库时遇到的错误Error:CannotenqueueQueryafterfatalerror,并提供了解决方案。通过在配置中添加useConnectionPooling:true来启用连接池,从而避免该错误的发生。
摘要由CSDN通过智能技术生成

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

一、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
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

phpgolife

您的支持是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值