const mysql = require('mysql2/promise'); // 打印数据库连接配置(不包含密码) console.log('Connecting to database:', { host: process.env.DB_HOST, user: process.env.DB_USER, database: process.env.DB_DATABASE }); const pool = mysql.createPool({ host: process.env.DB_HOST, user: process.env.DB_USER, password: process.env.DB_PASSWORD, database: process.env.DB_DATABASE, waitForConnections: true, connectionLimit: 10, queueLimit: 0, // 添加额外的连接选项 connectTimeout: 10000, // 10 seconds ssl: { // 允许自签名证书 rejectUnauthorized: false } }); // 测试数据库连接 pool.getConnection() .then(connection => { console.log('Database connected successfully'); // 测试查询 return connection.query('SELECT 1') .then(() => { console.log('Database query test successful'); connection.release(); }) .catch(error => { console.error('Database query test failed:', error); connection.release(); throw error; }); }) .catch(error => { console.error('Database connection error:', { code: error.code, errno: error.errno, sqlState: error.sqlState, sqlMessage: error.sqlMessage }); // 如果是致命错误,终止程序 process.exit(1); }); module.exports = pool;