nodejs mysql连接过期自动执行重新连接

var mysql = require('mysql')

var mysql_config = {

    host: '127.0.0.1',

    user:'root',

    password:'root',

    database:'sjh'

}

function handleDisconnection() {

  var dbServer = mysql.createConnection(mysql_config)

    dbServer.connect(function(err) {

        if(err) {

            setTimeout(handleDisconnection, 2000)

        }

    })

    dbServer.on('error', function(err) {

        logger.error('db error', err)

        if(err.code === 'PROTOCOL_CONNECTION_LOST') {

            logger.error('db error执行重连:'+err.message)

            handleDisconnection()

        } else {

            throw err

        }

    })

    return dbServer//返回一个connection对象,用于调用它的其他方法

    exports.dbServer = dbServer

}

exports.handleDisconnection =  handleDisconnection

你可能感兴趣的:(nodejs mysql连接过期自动执行重新连接)