备注:这是在pm2配置node环境下,超过8小时mysql自动关闭的情况下出现的解决方法:
1、封装mysql.js
var mysql = require('mysql');var connection = { host: '',//主机名 user: '',//用户名 password: '',//密码 database: ''//数据库}// 用于保存数据连接实例var db = null;var pingInterval;// 如果数据连接出错,则重新连接function handleError(err) { logger.info(err.stack || err); connect();}// 建立数据库连接function connect() { if (db !== null) { db.destroy(); db = null; } db = mysql.createConnection(connection); db.connect(function (err) { if (err) { logger.info("error when connecting to db,reConnecting after 2 seconds:", err); setTimeout(connect, 2000); } }); db.on("error", handleError); // 每个小时ping一次数据库,保持数据库连接状态 clearInterval(pingInterval); pingInterval = setInterval(() => { console.log('ping...'); db.ping((err) => { if (err) { console.log('ping error: ' + JSON.stringify(err)); } }); }, 3600000);}connect();module.exports = db;
2、在server.js引入以下代码就能用了
var connection = require('./mysql');