/** * Database Connection Pool * @author Descomplicar® | @link descomplicar.pt | @copyright 2026 */ import 'dotenv/config' import mysql from 'mysql2/promise' // Database configuration const config = { host: process.env.DB_HOST || 'localhost', user: process.env.DB_USER, password: process.env.DB_PASS, database: process.env.DB_NAME, waitForConnections: true, connectionLimit: 10, queueLimit: 0, connectTimeout: 10000, // 10 segundos acquireTimeout: 15000, // 15 segundos timeout: 30000, // 30 segundos para queries charset: 'utf8mb4' } // Validação obrigatória de credenciais if (!process.env.DB_USER || !process.env.DB_PASS || !process.env.DB_NAME) { throw new Error('Missing required database environment variables: DB_USER, DB_PASS, DB_NAME') } // Create connection pool const pool = mysql.createPool(config) // Test connection pool.getConnection() .then(conn => { console.log('✅ MySQL connected') conn.release() }) .catch(err => { console.error('❌ MySQL connection error:', err.message) }) export default pool