const mysql = require('mysql2/promise'); require('dotenv').config(); // 创建连接池 const poolConfig = { host: process.env.DB_HOST || 'localhost', user: process.env.DB_USER || 'root', password: process.env.DB_PASSWORD || '1234', database: process.env.DB_NAME || 'recruitment_system', port: parseInt(process.env.DB_PORT) || 3307, // 确保端口是数字 waitForConnections: true, connectionLimit: 10, queueLimit: 0 }; const pool = mysql.createPool(poolConfig); // 增强版连接测试函数 const testConnection = async () => { let connection; try { console.log('🔄 正在尝试连接数据库...'); console.log('连接参数:', { host: poolConfig.host, user: poolConfig.user, database: poolConfig.database, port: poolConfig.port }); connection = await pool.getConnection(); console.log('✅ 成功获取数据库连接'); const [rows] = await connection.query('SELECT 1 + 1 AS result'); console.log('测试查询结果:', rows[0].result); return true; } catch (error) { console.error('❌ 数据库连接失败:'); console.error('错误信息:', error.message); console.error('错误代码:', error.code); // 更详细的错误诊断 if (error.code === 'ER_ACCESS_DENIED_ERROR') { console.error('可能原因: 用户名或密码错误'); } else if (error.code === 'ECONNREFUSED') { console.error('可能原因: MySQL服务未启动或端口错误'); } return false; } finally { if (connection) connection.release(); } }; module.exports = { pool, testConnection };