| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 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;
|