const mysql = require('mysql2'); const logger = require('../logger'); // 从环境变量中获取数据库配置 const dbConfig = { host: process.env.DB_HOST || '192.168.3.31', user: process.env.DB_USER || 'yangfei', password: process.env.DB_PASSWORD || 'yangfei', database: process.env.DB_NAME || 'myiot', waitForConnections: true, connectionLimit: 10, // 连接池大小 queueLimit: 0, // 无限制排队 connectTimeout: 10000, // 连接超时时间 }; // 创建连接池 const pool = mysql.createPool(dbConfig); // 测试连接 pool.getConnection((err, connection) => { if (err) { logger.error('MySQL2 连接失败:', err); return; } logger.info('MySQL2 数据库连接成功'); connection.release(); // 释放连接回池中 }); // 处理连接错误 pool.on('error', (err) => { logger.error('MySQL2 连接池错误:', err); if (err.code === 'PROTOCOL_CONNECTION_LOST') { // 重新连接 pool.getConnection((err, connection) => { if (err) { logger.error('MySQL2 重新连接失败:', err); } else { logger.info('MySQL2 重新连接成功'); connection.release(); } }); } else { throw err; } }); module.exports = pool;